/*
  ==============================================================================

  This is an automatically generated file created by the Jucer!

  Creation date:  23 May 2008 12:50:12 pm

  Be careful when adding custom code to these files, as only the code within
  the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded
  and re-saved.

  Jucer version: 1.11

  ------------------------------------------------------------------------------

  The Jucer is part of the JUCE library - "Jules' Utility Class Extensions"
  Copyright 2004-6 by Raw Material Software ltd.

  ==============================================================================
*/

//[Headers] You can add your own extra header files here...
//[/Headers]

#include "Ketonal.h"


//[MiscUserDefs] You can add your own user definitions and misc code here...
//[/MiscUserDefs]

//==============================================================================
Ketonal::Ketonal (KetonalSettings *_s)
    : label (0),
      ketonalWindowOutput (0),
      internalCachedImage1 (0)
{
    addAndMakeVisible (label = new Label (T("new label"),
                                          String::empty));
    label->setFont (Font (8.7000f, Font::plain));
    label->setJustificationType (Justification::centredLeft);
    label->setEditable (false, false, false);
    label->setColour (TextEditor::textColourId, Colours::black);
    label->setColour (TextEditor::backgroundColourId, Colour (0x0));

    addAndMakeVisible (ketonalWindowOutput = new Label (T("Window Output"),
                                                        T("w00f w00f?")));
    ketonalWindowOutput->setTooltip (T("Ketonal, are ya in pain?"));
    ketonalWindowOutput->setFont (Font (8.0000f, Font::bold));
    ketonalWindowOutput->setJustificationType (Justification::centredLeft);
    ketonalWindowOutput->setEditable (false, false, false);
    ketonalWindowOutput->setColour (TextEditor::textColourId, Colours::black);
    ketonalWindowOutput->setColour (TextEditor::backgroundColourId, Colour (0x0));

    internalCachedImage1 = ImageCache::getFromMemory (ketonal_main_bg_png, ketonal_main_bg_pngSize);

    //[UserPreSize]
	
	settings = _s;
	maxJobs = 4;
    //[/UserPreSize]

    setSize (128, 128);

    //[Constructor] You can add your own custom stuff here..
	uploadThreadPool = new ThreadPool(maxJobs, true, 1000);

	ketonalSettings = 0;
#if JUCE_WIN32 || JUCE_LINUX
    trayIcon = new KetonalTrayIcon(this);
#endif

	while (settings->painFree())
	{
		Logger::writeToLog (T("loading"));
	}

	cacheConfigs();
    //[/Constructor]
}

Ketonal::~Ketonal()
{
    //[Destructor_pre]. You can add your own custom destruction code here..
	syncConfigs();

	dropTargets.clear();
	deleteAndZero (trayIcon);
	
	if (ketonalSettings)
	{
		deleteAndZero (ketonalSettings);
	}
    //[/Destructor_pre]

    deleteAndZero (label);
    deleteAndZero (ketonalWindowOutput);
    ImageCache::release (internalCachedImage1);
	deleteAndZero (uploadThreadPool);
    //[Destructor]. You can add your own custom destruction code here..
    //[/Destructor]
}

//==============================================================================
void Ketonal::paint (Graphics& g)
{
    //[UserPrePaint] Add your own custom painting code here..
    //[/UserPrePaint]

    g.setColour (Colours::black);
    g.drawImage (internalCachedImage1,
                 0, 0, 129, 129,
                 0, 0, internalCachedImage1->getWidth(), internalCachedImage1->getHeight());

    //[UserPaint] Add your own custom painting code here..
    //[/UserPaint]
}

void Ketonal::resized()
{
    label->setBounds (32, 80, 72, 8);
    ketonalWindowOutput->setBounds (0, 0, 120, 16);
    //[UserResized] Add your own custom resize handling here..
    //[/UserResized]
}

//[MiscUserCode] You can add your own definitions of your custom methods or any other code here...
void Ketonal::mouseDrag (const MouseEvent& e)
{
	myDragger.dragComponent (getParentComponent(), e);
}

bool Ketonal::isInterestedInFileDrag (const StringArray &files)
{
	return (true);
}

void Ketonal::fileDragEnter (const StringArray &files, int x, int y)
{
	int x1,y1;
	x1 = getScreenX();
	y1 = getScreenY();

	int newX = x1 + getWidth() + 2;
	int newY = y1;
	int lastX = newX;

	setMouseCursor (MouseCursor::CopyingCursor);

	for (int p=0; p<configList.size(); p++)
	{
		if (!configList[p]->getRunning())
		{
			FileDropTargetWindow *wnd = new FileDropTargetWindow(this, configList[p]);
			wnd->setBounds (newX + (p*130), newY, 128, 128);
			wnd->setVisible (true);
			dropTargets.add (wnd);
		}
	}
}

void Ketonal::fileDragMove (const StringArray &files, int x, int y)
{
}

void Ketonal::fileDragExit (const StringArray &files)
{
}

void Ketonal::filesDropped (const StringArray &files, int x, int y)
{
	bool p=false;
	while (!p)
	{
		p = clearConfigs();
	}
}

bool Ketonal::clearConfigs()
{
	for (int p=0; p<dropTargets.size(); p++)
	{
		if (dropTargets[p])
		{
			if (!dropTargets[p]->isRunning())
			{
				dropTargets.remove (p, true);
				return (false);
			}
		}
	}

	return (true);
}

void Ketonal::changeListenerCallback (void *objectThatHasChanged)
{
	int i;
	const FileDropTargetWindow *ptr = (FileDropTargetWindow *)objectThatHasChanged;

	if (i = dropTargets.indexOf (ptr))
	{
		Logger::writeToLog (T("drop Target called()"));
	}
	else
	{
		return;
	}
}

void Ketonal::timerCallback()
{
}

void Ketonal::mouseDown (const MouseEvent& e)
{
	myDragger.startDraggingComponent (getParentComponent(), 0);

	if (e.mods.isPopupMenu())
	{
		PopupMenu m;
        m.addItem (1, "Options", true, false);

		m.addSeparator();

		m.addItem (2, "About", true, false);
		m.addItem (3, "Exit", true, false);

        const int result = m.show();

		if (result == 1)
		{
			if (!ketonalSettings)
			{
				ketonalSettings = new KetonalSettingsWindow(this);
				ketonalSettings->setVisible (true);
			}
			else
			{
				ketonalSettings->setVisible (true);
				ketonalSettings->toFront (true);
			}
        }
		else if (result == 2)
		{
		}
		else if (result == 3)
		{
			JUCEApplication::quit();
		}
	}
}

void Ketonal::trayDoubleClick()
{
	Component *parent = getParentComponent();
	if (parent->isVisible())
	{
		parent->setVisible(false);
	}
	else
	{
		parent->setVisible(true);
		parent->toFront(true);
	}
}

void Ketonal::closeOptions()
{
	ketonalSettings = 0;
}

KetonalSettings *Ketonal::getSettings()
{
	return (settings);
}

void Ketonal::cacheConfigs()
{
	Logger::writeToLog (T("Ketonal::cacheConfigs()"));

	DirectoryContentsList *list = settings->getContentsList();

	if (list)
	{
		if (configList.size() > 0)
		{
			list->refresh();
			configList.clear();
		}

		for (int x=0; x<list->getNumFiles(); x++)
		{
			File *f = new File (list->getFile (x));
			
			if (!f)
				return;

			Logger::writeToLog (T("validating file: ") + f->getFullPathName());

			if (f->exists())
			{
				Logger::writeToLog (T("file exists"));
				XmlDocument *doc = new XmlDocument(*f);
				if (doc)
				{
					Logger::writeToLog (T("is an XML document"));

					XmlElement *rootElm = doc->getDocumentElement();

					if (rootElm)
					{
						if (rootElm->getTagName() == T("ketonalConfig"))
						{
							configList.add (new KetonalConfig (rootElm, f));
						}
					}
				}
			}
			else
			{
				Logger::writeToLog (f->getFullPathName() + T("does not exist"));
			}
		}
	}
}

void Ketonal::syncConfigs()
{
}
//[/MiscUserCode]


//==============================================================================
#if 0
/*  -- Jucer information section --

    This is where the Jucer puts all of its metadata, so don't change anything in here!

BEGIN_JUCER_METADATA

<JUCER_COMPONENT documentType="Component" className="Ketonal" componentName=""
                 parentClasses="public Component, public FileDragAndDropTarget, public ChangeListener, public Timer"
                 constructorParams="KetonalSettings *_s" variableInitialisers=""
                 snapPixels="8" snapActive="1" snapShown="1" overlayOpacity="0.330000013"
                 fixedSize="1" initialWidth="128" initialHeight="128">
  <BACKGROUND backgroundColour="0">
    <IMAGE pos="0 0 129 129" resource="ketonal_main_bg_png" opacity="1"
           mode="0"/>
  </BACKGROUND>
  <LABEL name="new label" id="7cfe13ec4fd5ab72" memberName="label" virtualName=""
         explicitFocusOrder="0" pos="32 80 72 8" edTextCol="ff000000"
         edBkgCol="0" labelText="" editableSingleClick="0" editableDoubleClick="0"
         focusDiscardsChanges="0" fontname="Default font" fontsize="8.7"
         bold="0" italic="0" justification="33"/>
  <LABEL name="Window Output" id="7b8838a78a331972" memberName="ketonalWindowOutput"
         virtualName="" explicitFocusOrder="0" pos="0 0 120 16" tooltip="Ketonal, are ya in pain?"
         edTextCol="ff000000" edBkgCol="0" labelText="w00f w00f?" editableSingleClick="0"
         editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
         fontsize="8" bold="1" italic="0" justification="33"/>
</JUCER_COMPONENT>

END_JUCER_METADATA
*/
#endif

//==============================================================================
// Binary resources - be careful not to edit any of these sections!

// JUCER_RESOURCE: ketonal_main_bg_png, 21478, "C:\Documents and Settings\Administrator\My Documents\My Pictures\ketonal_main_bg.png"
static const unsigned char resource_Ketonal_ketonal_main_bg_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,128,0,0,0,128,8,6,0,0,0,195,62,97,203,0,0,0,1,115,82,71,66,0,174,206,28,233,0,
0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,0,0,0,7,116,73,77,69,7,216,5,20,20,42,21,60,187,88,53,0,0,32,0,73,68,65,84,120,218,236,157,
119,156,93,117,153,255,223,223,239,169,183,223,59,51,119,250,100,102,210,38,189,18,72,32,1,66,47,234,130,128,34,37,8,107,97,117,93,247,39,42,174,130,29,65,84,4,93,69,92,68,4,17,68,64,8,82,131,244,146,
64,128,132,16,82,72,47,147,76,166,207,220,126,202,247,247,199,57,147,4,22,214,6,130,187,124,95,175,243,154,155,155,185,103,206,61,207,231,121,190,207,243,121,202,129,247,214,123,235,189,245,222,122,111,
189,125,203,6,18,239,214,139,19,239,201,231,45,93,77,192,28,160,10,72,3,141,225,17,3,126,7,252,58,188,231,234,189,91,245,191,104,9,132,6,252,11,176,67,71,170,20,9,213,38,90,213,4,57,89,77,181,102,170,
102,171,73,1,121,224,164,16,0,198,187,69,249,222,179,0,127,227,146,104,7,250,120,63,136,19,157,127,184,121,56,19,197,1,72,63,142,45,171,48,100,140,104,36,138,153,206,115,203,192,143,120,178,111,233,110,
224,76,224,25,192,5,156,247,0,240,143,171,247,213,160,46,210,208,63,61,158,73,198,66,222,79,139,156,130,171,155,200,136,134,180,4,166,41,137,24,6,117,201,24,126,102,3,255,254,220,231,217,153,239,93,13,
156,11,172,1,138,128,255,78,110,9,250,123,130,252,203,151,134,60,216,195,191,174,154,170,142,121,156,192,4,22,16,21,105,220,184,36,81,101,144,172,50,169,170,50,104,170,177,25,242,186,249,227,250,251,121,
101,211,10,170,172,4,59,243,189,147,129,247,1,59,67,193,23,223,3,192,63,146,240,133,118,148,129,126,243,193,198,156,154,3,157,19,177,85,11,194,48,72,84,219,100,27,109,26,154,117,26,26,44,106,107,13,158,
217,185,140,159,62,118,35,182,105,240,225,195,142,101,66,109,59,31,250,229,127,176,169,111,231,52,96,20,176,5,168,132,86,224,61,0,188,235,133,47,245,35,108,221,190,101,65,116,126,245,81,156,206,240,112,
4,223,18,100,106,163,84,213,69,104,106,212,232,24,107,146,172,82,92,245,216,47,120,104,221,50,206,158,255,126,206,60,228,253,68,163,9,112,124,58,234,90,217,212,183,115,54,208,10,244,3,195,161,63,160,222,
3,192,187,120,25,154,113,68,196,176,111,61,44,113,120,245,145,230,71,24,206,25,24,213,26,201,170,8,137,140,69,162,90,167,186,70,162,244,28,95,185,235,26,214,236,217,204,79,63,122,49,83,38,78,65,105,10,
207,243,209,76,131,19,102,44,224,190,53,79,215,9,33,198,41,165,54,0,230,59,185,13,188,7,128,63,79,243,143,180,12,235,150,99,50,71,87,31,99,158,70,161,98,17,77,11,226,41,155,72,210,198,78,106,164,227,130,
154,148,206,207,158,186,153,29,125,187,184,241,147,151,209,56,166,29,207,244,193,144,128,6,142,70,91,67,11,66,8,83,161,90,128,120,72,20,13,191,83,219,192,123,0,248,83,97,158,144,135,91,186,249,235,227,
178,71,213,156,22,63,29,83,89,104,89,48,18,22,42,170,227,72,137,102,8,106,147,58,175,246,172,230,193,53,79,112,245,162,139,104,108,29,133,103,248,16,51,192,16,224,42,16,130,136,101,19,53,109,242,229,162,
29,2,32,18,160,3,247,61,0,188,235,132,175,29,96,234,198,77,199,54,44,172,63,187,250,44,210,150,77,77,147,36,94,101,32,44,141,130,47,233,205,129,231,42,76,163,194,245,79,220,198,130,49,179,56,96,194,76,
124,93,65,212,0,83,3,41,192,115,193,87,196,204,8,186,166,17,10,62,26,90,0,141,119,136,33,124,15,0,111,74,144,136,26,33,197,245,11,234,14,106,60,163,250,60,84,209,32,217,4,245,45,38,86,92,3,77,16,245,52,
164,161,192,53,88,177,107,25,155,123,183,113,209,201,223,128,152,129,138,104,129,233,215,68,32,86,31,240,124,108,97,160,9,13,2,54,112,228,120,199,248,152,247,0,240,38,43,98,218,151,118,100,198,76,62,189,
246,28,134,250,76,108,189,140,97,71,209,44,208,52,16,186,192,214,21,53,82,163,92,42,241,219,21,191,231,184,169,7,51,126,244,88,60,11,48,66,205,87,10,124,5,190,15,174,143,33,52,52,33,71,0,32,247,59,222,
25,43,247,158,168,255,251,170,143,102,63,86,31,171,249,216,135,235,207,64,12,213,210,149,43,224,40,129,135,196,87,2,132,0,17,0,33,19,211,249,227,198,199,232,28,222,195,185,135,157,12,17,29,101,202,224,
206,250,10,60,5,174,143,114,21,120,30,150,208,16,66,140,40,159,224,29,102,99,223,3,192,235,214,209,7,31,49,219,64,187,226,240,204,49,212,87,166,179,107,176,128,227,249,184,8,138,37,65,217,17,120,0,66,
160,75,201,112,49,199,141,207,221,205,57,243,222,71,99,99,51,174,1,66,138,64,240,142,15,21,15,229,132,175,29,65,223,240,0,189,133,65,66,167,111,68,248,234,31,61,12,52,128,127,6,58,128,62,160,0,12,2,107,
129,231,195,56,247,237,196,177,52,52,45,226,120,78,37,4,245,222,155,121,232,161,135,178,104,209,34,255,99,31,251,216,159,244,178,143,62,252,152,233,157,155,182,255,108,82,106,122,98,110,228,68,122,6,28,
202,174,135,169,235,184,186,201,80,69,146,43,9,162,73,129,38,64,151,6,15,173,125,2,199,113,57,245,128,163,81,186,10,246,124,95,129,227,129,0,37,68,176,255,87,60,112,97,75,119,39,158,231,185,4,84,176,31,
50,129,46,65,10,121,44,48,11,216,13,220,249,58,128,188,171,1,112,190,46,180,31,53,90,141,12,149,243,184,170,132,129,206,0,67,168,0,0,119,8,33,126,175,148,90,251,22,125,153,166,246,182,209,29,137,100,178,
101,215,174,206,214,238,238,158,153,74,168,241,182,105,247,72,33,53,77,74,95,23,154,80,74,249,171,150,175,84,23,174,184,48,151,137,103,6,92,207,43,148,74,165,161,41,147,39,246,206,152,54,171,80,46,84,
74,82,19,5,223,135,199,30,123,236,240,165,79,45,61,125,74,106,106,244,200,218,211,240,74,17,60,55,71,204,144,24,150,142,212,117,10,142,32,87,130,148,35,48,45,65,217,169,176,120,213,163,28,63,225,96,170,
51,53,184,66,129,2,229,3,190,7,74,132,190,189,66,84,92,40,41,110,93,241,16,161,66,244,3,109,64,59,80,15,52,0,30,208,13,236,34,40,34,113,67,128,120,239,102,0,84,1,159,151,72,230,70,143,98,74,102,62,101,
167,132,227,57,244,179,139,53,229,165,179,215,85,214,204,238,243,123,190,172,52,241,36,138,95,43,95,221,161,148,42,252,37,127,228,212,83,78,147,183,221,254,187,227,132,148,159,210,132,156,215,187,163,
59,89,17,101,189,90,171,102,116,114,44,182,136,146,52,211,104,82,97,234,18,93,15,212,171,228,58,228,157,2,101,85,198,193,193,141,185,228,183,230,120,104,221,67,56,190,139,235,187,158,143,146,77,137,22,
113,82,203,135,152,26,63,24,89,142,81,114,138,100,34,146,136,165,131,97,160,34,146,138,18,228,242,80,44,41,146,81,157,77,61,91,217,220,179,147,11,142,56,27,100,136,108,79,129,242,2,43,160,130,216,95,120,
62,154,39,217,221,219,201,242,173,175,16,178,127,199,132,22,96,51,240,2,112,31,65,110,96,40,12,13,27,129,129,240,120,219,50,134,111,5,0,78,141,26,246,168,3,27,39,176,172,231,126,122,156,93,156,57,238,
99,248,197,20,3,249,113,76,74,204,99,192,239,97,155,90,27,91,87,121,246,216,87,114,43,143,29,40,13,126,78,74,249,35,165,212,29,74,169,161,63,117,141,53,85,217,19,30,125,228,209,11,34,50,118,200,248,232,
4,109,102,108,22,181,90,3,49,191,10,195,77,32,60,3,79,41,52,95,195,148,18,67,104,24,66,4,66,209,129,136,143,212,36,186,165,5,206,185,238,83,86,121,114,149,28,195,149,138,86,113,20,53,122,35,49,81,69,177,
224,226,185,101,18,134,160,46,99,144,202,232,148,145,12,185,18,87,8,114,69,69,46,15,53,9,193,189,175,60,69,91,117,35,29,13,173,120,194,7,161,5,66,119,252,16,0,32,16,232,66,195,45,148,184,246,201,223,179,
181,127,55,4,197,33,27,128,39,129,23,129,61,161,185,143,18,84,21,201,112,27,205,189,221,126,154,246,55,126,62,14,92,253,209,217,39,214,223,254,169,31,114,252,129,11,88,53,244,34,15,237,88,204,164,246,
70,166,183,182,145,74,74,226,118,146,70,123,28,211,83,7,51,61,51,13,83,167,97,192,29,60,201,21,254,7,4,148,125,229,111,8,77,221,107,79,30,75,76,112,29,247,134,74,217,185,168,206,105,109,61,54,126,154,
60,42,250,126,70,107,83,200,136,122,52,63,70,217,17,12,87,28,114,21,135,156,19,30,37,151,92,217,37,95,242,40,148,92,202,21,240,149,142,134,65,68,55,73,153,22,213,118,130,148,86,69,212,207,98,251,117,120,
158,73,193,113,241,124,31,93,66,85,74,163,169,201,160,166,206,192,142,74,92,31,138,142,196,243,5,166,4,33,29,126,245,194,29,28,61,225,64,102,143,153,138,167,19,48,126,132,250,234,43,12,52,132,15,207,173,
91,201,55,239,186,134,155,158,189,151,92,165,88,33,40,15,123,57,244,147,156,208,135,178,67,16,84,66,193,15,134,20,113,249,237,164,137,255,86,0,212,3,95,253,194,241,231,24,83,102,204,164,166,185,142,19,
15,58,138,162,91,228,186,103,174,103,246,180,102,142,153,55,145,154,172,32,22,85,224,131,237,215,210,97,205,97,140,53,9,67,232,181,253,94,207,7,10,126,225,88,129,182,13,212,134,145,19,155,166,249,207,
174,227,221,80,171,53,205,56,196,120,31,243,141,247,209,170,141,37,97,153,196,162,16,137,9,204,136,64,215,5,66,130,143,192,67,224,162,70,34,47,60,223,199,85,161,199,174,107,196,34,58,233,164,164,186,90,
146,206,8,52,19,42,158,79,201,81,120,74,33,53,129,166,107,88,150,164,58,173,209,80,175,81,149,145,152,150,160,226,64,177,44,168,184,129,86,119,229,119,243,192,230,135,56,107,214,137,52,85,103,241,13,64,
6,251,128,84,129,131,216,217,179,155,31,61,112,35,183,60,123,63,179,27,59,88,211,181,153,158,252,192,43,192,210,80,176,125,64,111,232,15,12,132,63,123,195,215,57,160,20,238,255,234,221,10,0,11,56,123,
230,184,201,169,67,15,60,24,223,2,221,54,56,104,210,108,82,122,132,31,61,112,61,115,39,76,166,163,173,153,100,149,32,147,209,41,230,29,58,251,28,12,183,154,14,115,6,83,99,19,41,139,129,134,126,183,239,
67,150,22,169,149,66,110,211,52,253,219,154,175,125,99,162,49,43,190,192,252,32,45,106,50,150,180,73,70,117,234,171,77,234,235,45,178,89,131,84,74,39,26,53,48,12,29,77,106,8,4,66,105,251,172,166,18,104,
82,98,24,26,49,219,32,157,52,169,169,214,201,102,53,82,73,129,101,75,52,93,162,132,4,169,33,117,13,77,215,48,109,73,58,41,169,169,18,196,227,2,93,3,229,11,92,23,92,79,81,113,4,67,197,2,150,161,113,104,
219,1,24,182,134,48,4,66,128,46,36,158,231,113,239,138,199,248,214,226,107,192,19,124,243,216,79,80,170,148,249,233,83,183,1,60,2,116,134,158,254,38,96,91,232,248,13,134,66,47,134,224,112,223,78,231,239,
45,1,128,16,66,3,78,159,216,50,166,254,132,131,143,130,168,142,175,7,60,201,212,150,14,54,237,216,198,45,79,223,195,9,211,15,33,25,139,162,91,224,123,130,129,65,143,161,82,133,98,209,33,169,178,76,183,
103,17,35,165,237,113,186,14,170,80,254,104,156,228,65,115,237,99,196,44,253,40,98,170,6,93,215,137,71,76,170,211,54,13,245,22,141,13,38,53,89,157,100,74,35,17,211,176,109,13,93,211,144,74,34,124,13,133,
4,37,16,8,52,77,98,155,58,177,168,65,58,109,144,173,146,84,103,4,241,40,152,134,192,48,5,186,17,88,9,15,13,165,73,12,93,144,136,64,38,5,241,8,232,6,24,186,196,212,192,243,21,249,178,15,126,140,142,212,
36,132,2,203,82,152,58,152,154,206,64,62,199,119,238,189,150,7,87,61,195,153,179,143,227,115,135,158,142,238,193,191,223,121,5,219,6,186,54,1,143,133,194,222,28,2,160,59,20,250,72,56,232,255,61,121,129,
191,21,0,14,240,129,113,13,109,99,79,57,228,24,176,117,148,46,81,4,44,232,220,209,211,120,120,229,51,60,253,234,74,142,158,52,23,129,4,169,40,151,37,133,178,192,241,21,133,114,153,124,94,80,235,141,165,
78,180,98,250,81,99,142,60,78,180,139,25,72,21,65,215,13,34,182,73,34,22,33,147,182,200,102,77,106,107,53,82,41,73,52,42,136,197,36,145,136,196,48,36,2,137,239,10,60,47,16,148,82,10,77,74,44,75,39,30,
53,200,36,13,170,51,26,169,36,216,17,48,116,129,161,131,97,6,190,91,177,18,132,235,154,16,196,108,69,38,9,177,136,64,215,4,134,6,166,25,240,250,133,34,228,74,130,98,25,28,199,195,144,96,105,26,91,186,
119,243,181,251,174,102,160,152,227,242,147,255,141,67,218,102,160,249,146,235,158,185,139,171,151,253,30,224,1,96,7,208,21,2,96,23,251,234,2,223,145,245,183,110,1,10,56,170,54,153,153,113,218,188,227,
49,98,54,74,19,32,5,202,243,177,12,155,3,71,77,226,234,251,127,67,197,117,153,59,122,26,224,161,132,160,84,209,240,209,16,74,224,186,62,101,199,193,246,50,212,251,29,88,126,6,133,192,50,77,108,219,34,
26,177,137,71,45,18,9,131,76,90,35,147,150,68,237,128,138,213,12,129,105,130,109,74,116,77,67,57,80,46,249,148,29,15,207,15,246,245,136,169,145,136,235,100,210,58,85,41,73,50,14,150,17,124,94,215,4,186,
38,241,124,40,150,161,84,18,8,161,72,70,20,85,41,65,44,18,114,255,50,164,246,129,114,25,10,37,40,85,192,113,193,119,37,59,250,122,249,218,35,87,17,245,179,92,120,232,39,105,207,102,17,158,195,158,190,
110,62,119,207,143,216,157,235,93,31,106,255,112,24,238,109,11,67,62,151,119,112,105,111,193,57,178,248,124,224,196,169,11,200,214,214,163,140,80,253,133,68,185,46,169,120,134,209,169,58,174,186,247,6,
230,180,78,164,169,170,150,138,231,147,43,75,92,165,161,11,137,46,37,134,16,200,48,109,102,152,130,72,212,38,22,181,137,68,45,236,136,129,29,49,136,70,52,18,49,72,39,4,182,37,209,52,13,105,104,72,20,134,
6,150,33,144,58,56,69,159,82,222,165,226,250,72,4,150,173,147,76,232,84,103,116,170,210,146,120,84,96,24,2,33,37,82,6,123,183,242,161,92,86,20,203,224,43,69,34,42,168,78,65,212,22,72,49,98,241,64,40,73,
217,133,225,2,148,28,129,235,65,217,145,236,25,42,97,171,12,135,102,143,67,58,17,4,14,85,17,139,205,189,219,185,226,233,155,41,187,206,46,130,74,224,173,161,246,239,12,157,60,254,161,1,32,132,24,24,174,
20,78,111,175,106,140,207,155,56,27,165,169,192,27,14,25,48,28,151,182,76,35,91,58,183,243,187,231,30,228,216,73,243,144,88,244,13,251,148,93,9,8,76,41,72,71,5,245,105,157,76,60,48,249,118,204,194,142,
154,88,182,129,97,233,232,186,134,169,7,26,153,140,65,212,146,84,148,139,175,124,34,154,137,46,101,176,87,91,96,74,129,147,247,41,20,61,20,96,217,26,169,148,65,54,19,90,143,136,64,234,50,32,105,16,152,
82,71,23,26,142,235,83,40,43,92,23,34,22,164,147,16,181,3,60,19,146,122,190,130,82,89,49,152,131,130,43,112,125,129,231,43,76,25,161,33,218,6,74,167,88,130,254,220,48,235,250,214,178,170,123,13,187,243,
189,236,24,220,83,11,76,36,232,18,106,14,227,253,104,104,69,115,239,84,46,224,173,176,0,3,190,239,79,31,204,15,79,59,101,198,17,68,99,81,148,12,24,176,145,77,66,250,130,25,245,99,185,243,185,63,210,159,
31,226,192,81,211,25,24,246,200,151,5,74,129,38,161,38,37,24,211,38,105,172,215,137,70,116,208,13,164,166,33,53,13,161,5,90,170,73,136,152,129,99,150,142,25,44,239,92,205,87,31,190,150,13,125,59,113,125,
159,132,29,161,58,22,199,142,72,132,231,147,31,246,40,123,10,211,208,73,167,116,106,170,116,210,73,129,101,11,132,16,24,34,8,219,86,119,109,98,249,238,181,212,199,107,144,232,148,29,208,53,72,197,32,18,
110,1,48,2,0,65,174,0,253,57,40,148,193,247,131,236,160,38,193,83,14,155,242,235,121,178,107,9,15,108,187,159,165,59,86,209,59,232,209,22,25,75,123,188,153,221,197,174,88,217,119,38,153,154,221,172,132,
202,43,165,230,3,39,2,7,1,169,253,200,31,255,31,9,0,8,33,34,93,185,190,83,230,181,78,165,99,212,120,124,188,32,35,22,2,64,185,30,81,51,74,75,180,154,31,63,116,51,211,155,38,144,52,178,12,22,124,92,47,
176,20,9,75,209,80,13,53,25,65,52,38,130,44,137,51,18,7,9,70,178,176,82,6,30,183,109,65,58,98,99,27,38,155,250,119,241,192,134,103,185,127,195,50,42,190,75,71,109,35,233,88,156,74,193,167,148,247,145,
154,70,50,105,80,149,209,72,37,37,81,75,195,210,12,118,13,246,240,221,39,111,226,166,85,75,48,53,157,131,154,39,97,233,6,190,82,232,186,32,21,11,44,128,182,31,23,231,184,130,129,33,232,25,18,148,157,192,
138,24,6,164,35,26,142,182,135,63,236,184,9,83,151,204,200,204,99,94,245,113,204,72,205,167,61,50,141,25,169,121,140,143,118,176,51,191,131,130,202,167,37,226,25,215,119,174,11,195,193,56,176,144,160,
117,236,240,208,26,188,250,247,72,23,191,85,0,232,245,60,239,180,74,165,146,58,109,218,66,164,22,236,230,193,165,135,156,120,217,165,53,81,207,134,157,155,185,251,165,199,152,223,114,8,133,162,70,177,
172,80,158,34,102,40,106,146,130,104,76,97,153,2,75,23,72,45,216,155,93,87,224,249,251,210,235,18,176,45,69,54,25,101,102,227,88,22,182,205,228,216,177,7,82,21,73,114,215,154,199,185,103,195,51,216,150,
78,123,85,29,170,172,225,42,73,36,161,147,173,178,200,36,116,250,202,125,220,179,238,41,190,255,244,45,24,82,231,203,243,207,230,159,58,230,99,233,6,82,40,76,3,98,54,196,99,2,203,8,28,192,145,130,173,
66,9,118,247,65,95,78,226,9,137,109,10,170,98,26,45,117,58,19,154,146,28,57,118,14,135,54,207,165,57,210,10,174,69,217,81,56,62,148,92,69,74,53,49,218,152,76,79,165,147,221,149,29,83,124,124,23,212,43,
192,58,96,89,72,15,39,195,92,193,122,246,241,138,234,221,12,0,1,12,35,72,173,221,189,229,240,150,68,150,89,109,211,80,202,221,119,213,190,66,85,92,68,201,101,106,166,141,223,44,191,23,91,164,200,154,237,
228,11,46,194,11,188,238,218,180,34,98,42,164,0,203,20,196,99,146,136,5,174,171,40,149,69,192,238,169,17,47,29,82,49,31,132,11,10,108,205,100,98,117,43,11,219,103,81,114,42,220,188,122,9,171,7,214,51,
171,126,50,58,81,162,81,131,146,222,199,181,47,223,194,175,86,222,203,182,193,46,62,56,225,80,62,123,208,41,52,37,178,248,190,15,66,161,105,65,132,16,181,193,50,85,160,253,161,240,21,130,124,81,208,213,
47,24,46,73,116,83,208,80,165,211,144,133,29,165,181,172,31,88,77,83,58,65,75,38,67,197,173,80,44,251,148,221,48,63,164,160,226,185,216,36,153,100,207,64,105,195,230,198,226,171,211,149,82,175,132,196,
144,27,50,129,47,3,219,67,16,120,33,85,236,191,171,45,64,120,158,85,64,199,115,91,86,79,152,85,55,150,209,181,163,240,194,66,72,60,5,101,15,63,95,33,233,91,148,10,37,186,6,139,212,105,227,40,148,20,186,
240,201,38,125,178,105,129,161,169,48,195,15,166,161,136,88,160,235,80,174,40,74,149,128,145,179,77,168,77,67,58,30,90,9,161,240,149,143,235,251,216,186,201,156,198,9,28,49,122,22,141,137,26,178,209,106,
60,165,99,89,58,3,170,139,237,249,173,124,116,250,177,156,59,253,4,102,53,118,132,185,155,125,96,149,34,216,255,117,93,237,245,254,247,199,250,112,17,186,6,160,232,8,178,73,147,104,162,159,43,159,185,
146,91,150,255,158,229,27,87,240,219,85,15,50,54,217,76,157,213,194,80,193,167,228,136,189,0,0,133,235,121,232,202,164,35,209,206,243,195,207,232,57,55,231,3,15,134,244,111,126,63,97,171,144,17,44,191,
157,161,162,246,22,158,203,7,214,228,202,133,131,158,222,184,178,254,144,166,41,52,87,53,224,151,42,65,113,68,217,67,21,29,74,131,101,170,84,51,17,167,149,161,130,134,235,65,212,244,105,168,130,170,164,
64,151,106,191,173,37,16,134,109,9,204,112,59,48,13,200,38,161,161,70,146,136,105,232,82,6,25,55,169,7,57,1,223,199,85,30,9,35,66,107,186,1,93,211,41,57,224,40,159,246,154,106,222,63,113,14,173,233,44,
154,212,112,125,23,245,70,214,85,168,55,53,118,165,50,12,228,20,154,208,136,196,242,92,246,196,119,41,230,250,248,209,177,255,206,249,179,79,98,103,95,15,23,61,253,51,82,126,35,213,198,104,138,30,120,
126,72,32,16,212,8,86,92,159,148,72,128,57,196,75,131,171,50,4,221,194,91,67,11,48,20,58,131,133,253,24,194,119,189,5,24,113,86,134,128,87,251,10,131,11,31,95,255,124,98,86,205,24,218,50,205,104,21,15,
233,248,168,178,207,238,78,135,87,183,10,122,135,77,42,94,224,220,153,154,162,54,19,196,247,154,166,254,155,219,163,107,16,177,2,167,172,58,37,104,174,209,137,69,20,157,185,61,188,176,125,29,143,108,124,
129,93,195,189,196,205,8,169,72,2,83,215,131,123,77,192,6,22,43,10,215,17,196,98,96,71,60,20,254,27,11,254,205,132,175,70,210,11,33,223,47,37,137,24,220,180,230,215,12,230,247,112,237,7,190,204,232,116,
61,82,8,22,180,28,196,240,160,224,138,53,215,209,104,142,165,62,214,134,235,123,123,1,173,124,129,231,120,56,37,69,173,158,224,153,225,39,34,101,191,210,7,172,8,239,223,72,62,160,180,159,240,213,63,138,
5,144,35,95,162,39,63,112,204,61,47,63,73,163,149,164,74,139,179,171,191,155,158,222,34,157,59,108,186,250,109,92,2,103,75,16,176,117,169,24,164,98,65,226,229,13,47,84,11,72,153,84,92,99,243,224,54,174,
126,230,119,252,228,165,197,44,117,183,178,217,239,227,158,87,151,242,235,103,239,227,165,29,175,242,98,231,122,122,10,131,164,35,113,210,118,108,175,249,77,198,5,17,115,159,95,45,133,196,208,116,12,195,
68,151,26,200,16,22,35,33,199,254,240,6,132,18,104,26,196,163,18,43,226,48,236,244,115,238,236,19,105,173,105,226,27,143,252,130,59,55,62,205,145,227,15,161,221,62,128,141,93,93,108,175,236,96,102,205,
60,124,225,33,216,87,254,235,150,125,242,195,21,236,82,140,1,177,157,45,149,45,53,97,109,64,127,168,249,251,39,130,222,86,126,224,173,40,8,137,2,147,128,3,194,154,192,76,120,108,233,202,245,141,58,247,
214,111,203,105,117,99,105,140,53,144,47,41,34,42,75,71,124,14,7,213,79,161,49,109,50,88,84,12,21,5,123,250,161,42,161,168,51,8,170,102,197,107,191,187,16,2,67,211,185,111,221,82,190,251,244,111,104,155,
63,149,255,184,228,82,14,56,96,14,150,97,208,223,211,207,47,110,184,142,23,86,174,32,71,145,251,87,221,137,185,236,118,206,155,245,126,62,48,225,80,18,49,51,112,24,69,32,81,67,215,240,60,159,181,123,182,
240,66,231,58,82,118,156,3,155,39,81,151,168,194,193,197,83,111,144,136,147,10,169,64,74,159,132,174,113,214,140,163,145,82,82,241,42,220,219,249,60,113,35,74,201,150,144,49,56,112,244,193,108,232,221,
130,105,56,152,2,132,82,232,50,104,34,81,37,69,206,243,40,21,36,19,173,153,60,202,163,173,33,23,176,121,191,26,129,191,75,66,232,175,5,192,40,96,58,48,51,172,105,139,132,220,246,186,144,235,46,134,8,126,
127,197,115,207,41,23,116,253,125,77,31,167,167,92,98,197,192,179,60,217,115,15,243,198,165,152,52,122,34,61,131,21,182,239,129,124,73,81,44,5,121,125,109,175,236,197,94,147,108,72,141,53,93,91,248,222,
51,183,112,252,249,167,115,225,151,46,68,138,125,1,122,116,84,140,139,191,114,241,94,176,236,220,177,147,155,110,252,53,151,253,248,231,172,237,222,204,151,14,95,68,68,55,113,125,15,83,211,88,185,123,
35,23,45,249,57,59,253,65,134,53,7,83,55,169,94,102,112,214,196,163,57,239,128,19,209,165,142,171,220,55,22,65,96,82,112,125,23,219,136,176,116,219,42,158,219,181,150,147,38,31,134,138,131,225,185,28,
62,233,64,230,13,207,198,16,62,166,230,99,25,10,67,10,28,7,44,95,80,232,133,193,161,10,99,35,147,169,55,107,217,93,217,115,24,176,36,180,2,127,183,4,209,95,2,0,19,56,12,56,54,44,102,236,15,17,123,103,
248,179,63,180,112,145,240,119,199,0,83,198,164,90,245,179,27,207,199,170,140,162,209,130,150,198,14,148,222,71,83,84,82,241,29,106,107,4,209,40,12,229,53,210,9,144,175,223,131,149,64,74,168,184,30,87,
63,191,152,137,239,155,199,23,47,124,173,240,247,183,18,123,171,70,155,155,248,226,127,92,200,129,115,230,112,214,71,206,196,144,6,95,89,120,14,166,102,176,121,96,55,159,184,235,114,106,15,238,224,186,
175,93,195,168,166,22,124,229,115,215,226,187,248,250,87,46,102,227,192,14,190,182,240,60,12,77,127,173,175,160,94,75,203,24,82,103,103,223,30,190,254,248,47,153,183,112,1,86,206,166,172,74,164,50,73,
12,13,188,52,104,158,194,212,192,208,4,146,160,166,192,64,146,235,214,201,245,123,196,85,61,71,164,142,228,55,221,55,207,6,198,133,33,224,187,146,10,30,5,252,123,152,201,250,45,112,15,240,82,104,178,180,
144,205,170,5,154,132,16,71,1,223,148,66,140,159,148,234,160,175,88,96,217,192,83,60,63,240,40,67,110,63,237,241,201,20,75,58,174,39,169,78,6,233,217,100,60,112,244,196,127,83,57,133,38,36,47,117,109,
226,166,61,79,113,209,183,190,78,67,93,125,16,183,191,78,232,111,180,218,70,183,51,101,250,52,46,185,238,74,58,146,77,140,171,110,225,130,251,127,76,124,110,59,191,189,225,38,90,154,155,137,70,163,196,
98,49,102,207,154,197,33,11,22,112,225,207,47,165,78,38,153,217,216,129,171,92,132,16,225,142,180,239,111,233,82,195,245,125,206,187,253,18,6,26,117,206,93,244,81,94,124,234,89,142,235,152,75,58,26,193,
214,2,114,43,98,66,84,151,196,76,13,219,212,49,53,29,67,106,84,242,138,238,61,21,10,174,71,44,6,203,11,207,152,142,114,107,194,176,175,101,63,217,248,111,103,24,248,231,90,0,17,230,177,63,29,106,121,53,
80,19,94,164,10,45,194,1,64,35,136,89,74,169,137,105,35,45,22,102,78,32,37,27,80,154,160,38,102,32,132,70,54,210,68,197,247,241,28,141,77,125,3,216,9,151,137,118,154,168,110,5,84,171,231,224,121,222,107,
148,78,33,120,240,213,103,25,53,101,28,163,154,154,41,149,74,24,134,129,148,127,94,189,228,49,199,30,195,135,206,62,131,27,238,186,143,108,52,197,70,209,207,127,125,253,42,44,219,166,187,187,155,234,234,
106,164,148,40,165,152,123,208,65,156,241,145,51,184,241,166,251,56,105,226,124,44,211,68,50,210,13,20,128,211,212,116,138,78,133,79,221,245,3,30,27,94,199,93,223,186,157,221,123,186,208,132,134,129,192,
240,61,60,33,40,86,124,134,114,121,134,138,195,116,230,118,179,99,104,15,253,133,28,3,133,60,157,187,7,89,83,236,166,199,27,68,43,21,71,96,127,80,40,236,158,240,210,221,208,169,222,22,22,143,188,4,188,
242,86,110,15,127,201,22,48,50,213,42,27,210,149,42,212,250,147,67,211,181,38,172,103,235,200,200,172,56,43,251,105,166,165,22,96,218,26,117,53,146,136,45,41,57,138,178,231,227,9,193,64,165,135,203,159,
255,22,226,133,33,70,39,178,28,48,106,18,179,155,39,48,173,113,28,85,209,36,202,87,123,145,151,47,23,89,57,176,133,137,163,15,69,8,129,231,121,24,134,129,82,234,77,45,192,250,245,235,249,194,23,190,64,
85,85,21,87,253,232,42,142,57,238,88,174,188,243,73,182,246,237,166,182,173,145,154,170,26,206,59,239,60,238,191,255,126,46,187,236,50,22,45,90,180,247,124,227,70,143,225,87,93,63,163,103,120,128,166,
76,54,104,248,16,65,20,96,105,38,5,167,196,249,119,125,143,197,123,158,231,198,95,92,207,193,135,28,194,77,55,223,68,204,180,137,106,22,210,147,60,189,105,13,215,47,187,151,222,252,16,69,167,140,41,77,
18,70,28,67,69,49,92,27,85,72,209,36,82,180,200,8,147,155,106,185,99,240,6,94,25,218,208,9,220,17,110,169,69,130,222,128,218,64,177,56,18,56,35,164,139,111,4,86,190,21,245,130,127,9,0,70,218,151,139,33,
66,75,33,0,134,128,75,67,7,240,102,19,75,123,95,244,92,198,153,243,208,109,159,49,109,62,109,77,65,249,85,197,5,215,23,104,50,194,127,62,183,132,140,229,242,157,195,62,203,242,157,171,89,217,189,137,167,
182,173,98,97,199,28,254,245,192,83,16,66,160,84,176,3,23,156,18,5,225,80,155,13,40,219,63,101,246,1,174,190,250,106,22,47,94,12,192,97,135,29,70,117,109,13,73,43,74,220,140,208,215,217,203,43,107,94,
97,241,226,197,244,246,246,114,199,29,119,112,246,217,103,227,251,126,64,36,121,126,208,94,84,241,80,158,15,154,142,38,37,166,110,177,165,111,23,159,248,253,119,89,103,246,114,203,13,55,49,111,222,60,
116,93,39,153,78,99,8,13,75,104,248,46,136,138,77,147,57,142,137,118,61,117,118,61,73,35,142,33,45,60,71,226,14,41,114,202,165,191,224,17,51,109,138,230,171,108,45,116,18,42,145,70,48,100,178,28,86,12,
109,219,143,137,200,134,217,195,31,1,63,0,238,14,173,193,95,205,21,252,185,0,24,57,185,179,31,89,225,133,9,140,229,161,227,55,31,56,224,48,227,253,204,136,28,74,34,225,51,101,188,198,232,86,136,153,193,
41,148,16,104,186,206,176,155,99,201,230,135,56,125,194,17,100,19,41,206,152,113,60,255,150,202,208,89,236,67,137,192,232,43,181,15,118,10,200,231,242,56,238,159,63,86,111,250,244,233,152,166,73,44,22,
163,189,125,52,247,62,120,47,227,211,205,76,110,24,205,192,179,221,12,229,134,57,251,236,179,185,237,182,219,56,249,228,147,17,66,224,56,14,149,74,133,63,62,250,48,7,85,143,39,109,68,17,72,76,77,71,41,
197,146,87,159,229,252,187,190,71,205,180,54,110,186,244,6,38,78,158,132,109,219,0,20,139,5,42,229,10,186,212,240,93,69,212,176,153,153,157,142,238,100,209,85,20,95,41,202,37,159,82,177,66,126,216,97,
56,95,164,226,41,146,166,228,254,238,63,144,119,11,133,48,3,40,67,229,26,12,57,1,141,125,141,164,221,192,13,33,115,88,2,234,66,10,249,175,30,55,247,151,88,0,21,10,221,127,29,63,102,132,23,57,41,73,38,
62,211,92,72,36,38,25,221,174,211,214,174,17,179,21,202,243,131,138,93,41,48,76,131,71,214,61,129,230,42,62,60,105,33,31,255,195,119,233,47,229,185,239,156,43,104,172,170,197,169,84,246,249,0,50,32,209,
13,77,39,234,235,12,13,14,33,101,80,117,251,122,75,48,98,49,70,94,159,117,214,89,52,55,55,147,78,167,105,27,221,206,119,190,254,77,46,104,57,142,81,85,205,28,211,48,131,239,95,241,125,126,254,211,107,
248,252,231,63,79,85,85,21,229,114,25,199,113,184,246,87,191,228,137,123,30,226,103,7,127,154,104,52,130,109,26,244,20,6,185,228,137,27,249,233,115,191,231,180,211,63,204,55,191,250,117,50,53,85,196,227,
113,44,203,194,41,59,252,234,250,95,225,15,13,32,69,80,101,180,180,243,89,22,191,242,52,166,74,146,181,26,25,21,107,167,201,106,35,225,103,81,174,134,83,9,155,75,101,47,43,139,203,9,45,104,119,152,15,
216,21,250,92,133,240,30,235,225,97,133,202,182,38,252,119,38,84,202,191,154,46,254,91,153,64,177,159,167,122,70,189,24,61,235,224,196,137,68,171,108,204,132,129,97,73,42,21,197,192,176,143,227,10,20,
18,95,232,220,179,246,105,166,214,141,230,132,169,135,83,202,229,184,230,229,123,120,110,231,26,142,31,63,151,164,21,13,226,239,253,96,167,105,26,155,122,119,240,84,231,106,14,62,248,96,146,137,196,222,
40,96,127,225,239,221,54,148,66,74,201,152,49,99,104,108,108,228,154,159,255,156,161,167,54,240,201,57,255,132,46,36,83,234,70,115,255,83,143,240,171,37,183,227,248,30,155,183,110,229,177,199,30,229,170,
159,252,152,255,186,234,63,249,252,196,147,249,208,204,163,48,109,147,23,186,55,240,241,223,95,206,237,235,30,167,99,226,4,110,184,238,87,100,106,170,201,164,51,24,134,193,240,208,48,231,156,179,136,187,
23,223,205,49,19,230,242,129,73,243,193,247,152,92,211,206,204,186,9,212,199,51,228,189,1,214,14,189,196,115,61,79,179,110,96,53,209,74,6,187,146,33,170,219,172,97,41,79,228,151,0,60,28,10,125,87,232,
3,236,9,193,80,10,143,194,126,199,72,130,168,242,183,230,11,222,10,42,120,196,42,124,105,138,121,96,243,244,170,131,49,210,6,202,52,201,149,4,93,189,138,93,93,138,158,1,69,223,176,160,107,8,234,83,163,
88,48,118,50,105,75,39,101,197,184,123,253,83,172,41,239,226,137,245,47,48,171,126,60,141,137,26,188,145,239,19,146,130,245,137,44,203,86,46,231,174,101,15,49,113,210,36,106,179,181,184,174,139,235,186,
248,190,143,82,10,215,117,247,90,7,165,20,154,166,241,248,19,143,243,237,255,119,17,95,155,123,14,227,107,155,41,251,21,226,70,132,163,219,231,48,184,105,55,55,252,246,38,30,186,231,126,30,185,231,1,236,
173,121,190,113,224,57,156,62,243,104,186,156,65,174,120,230,86,46,120,224,39,68,70,215,224,187,30,233,84,154,69,103,159,69,42,149,194,48,12,6,6,6,56,243,35,103,112,231,226,187,168,111,110,228,208,230,
105,44,28,51,155,225,98,158,254,252,16,99,51,205,140,175,25,197,129,245,147,89,216,58,135,73,85,99,121,181,123,51,119,238,190,157,65,119,128,81,102,3,15,148,126,199,30,175,179,19,120,52,52,251,91,67,32,
12,239,231,228,249,251,165,134,157,16,0,133,253,114,6,127,245,152,185,183,42,23,80,15,124,121,97,250,125,209,214,196,4,244,184,192,176,117,92,37,201,135,205,148,249,178,36,87,150,228,42,18,211,136,81,
147,177,136,154,7,82,91,0,0,32,0,73,68,65,84,70,125,50,241,4,207,108,125,153,35,79,127,63,149,164,198,119,111,253,25,99,210,65,188,142,16,120,190,135,167,124,50,145,4,135,180,76,101,197,75,43,249,207,
223,253,146,146,231,208,210,212,76,44,22,219,11,132,145,61,220,243,60,34,145,8,91,183,109,227,204,69,103,115,82,98,6,231,206,121,31,101,223,217,155,32,138,232,6,243,71,77,229,67,227,15,227,228,182,131,
57,111,234,9,44,154,113,60,141,213,117,220,178,238,81,254,245,222,43,89,173,186,248,210,151,191,196,21,223,191,130,254,158,62,214,173,91,199,39,62,254,113,226,201,36,253,125,125,124,232,195,31,230,129,
7,31,224,75,23,126,137,152,29,97,172,170,226,224,182,233,108,235,233,230,27,15,95,71,207,112,129,230,232,40,92,79,161,75,141,90,43,195,104,111,42,94,87,21,203,188,71,89,230,62,192,118,111,35,30,222,227,
161,119,223,189,159,246,87,222,68,168,106,63,110,192,217,15,36,239,36,0,196,4,29,253,19,243,146,199,26,181,209,86,132,165,48,76,13,161,20,194,247,209,53,133,33,131,74,159,84,82,144,173,145,212,215,234,
196,226,58,186,101,178,181,187,147,103,118,174,230,138,239,253,128,2,14,151,221,241,115,214,237,218,194,184,234,22,170,163,73,92,229,225,42,143,136,97,115,88,251,76,162,5,193,207,110,249,37,55,44,254,
45,93,221,123,136,69,98,148,202,37,74,165,34,133,66,145,254,254,126,86,188,180,130,143,126,236,60,90,118,74,190,255,190,207,96,88,6,254,72,218,50,76,244,43,1,137,72,148,218,100,53,21,233,243,192,150,229,
124,249,143,63,231,206,93,203,56,245,156,51,184,234,251,63,100,254,97,135,34,165,228,161,7,151,176,121,235,22,190,240,249,47,176,121,243,38,78,255,200,71,120,244,209,71,249,194,231,63,207,133,23,126,145,
235,174,249,47,142,107,62,128,177,213,173,56,5,139,194,176,201,207,95,188,141,193,188,79,173,49,154,98,1,6,250,202,236,218,86,66,235,107,96,182,57,151,245,226,121,118,123,123,189,255,117,161,230,239,8,
29,59,247,207,240,201,254,230,124,193,91,50,31,64,10,177,217,23,222,224,160,223,29,25,225,75,76,169,136,154,144,72,42,18,182,143,169,5,197,152,169,140,70,44,173,163,108,151,93,197,97,162,186,205,130,142,
217,92,191,120,9,197,98,145,175,93,116,49,135,28,124,48,223,191,242,10,78,249,237,69,156,53,253,88,254,105,194,33,52,167,178,184,202,69,19,130,179,103,28,203,225,13,83,185,238,185,187,185,247,170,155,
184,241,234,235,136,214,164,136,70,35,68,236,8,253,125,125,12,236,234,230,164,134,131,248,238,201,255,66,58,26,167,226,251,123,83,186,18,129,174,105,184,120,108,24,220,201,131,175,46,227,230,151,150,176,
213,233,99,225,49,71,112,217,39,62,201,164,201,147,112,61,15,207,243,176,34,81,138,197,18,154,161,115,219,29,183,241,185,11,46,96,96,96,128,43,126,240,3,254,223,231,62,199,234,87,86,179,97,195,70,198,
206,109,198,113,60,114,121,159,201,177,185,124,168,53,202,173,91,110,100,247,80,129,19,179,255,68,185,223,103,215,110,151,178,15,209,148,79,101,48,79,40,236,9,192,70,224,185,112,223,127,219,91,194,222,
82,0,248,202,239,3,86,111,45,174,174,159,167,78,36,37,53,58,154,84,208,90,101,65,212,208,48,165,70,73,185,60,215,181,130,135,87,188,192,158,194,0,93,185,126,78,158,113,4,71,140,153,141,94,244,121,248,
225,135,249,151,127,57,159,99,142,62,134,217,51,103,115,253,175,111,224,146,239,93,206,53,207,221,201,41,19,15,227,212,169,11,25,147,110,68,162,209,148,201,242,141,133,31,227,51,195,167,176,174,119,27,
171,246,108,98,119,174,15,75,25,140,111,61,140,230,105,181,204,107,155,66,34,30,199,65,161,75,61,136,32,148,71,95,113,136,23,182,175,227,222,87,159,225,142,117,79,208,79,129,115,63,122,46,151,159,122,
42,227,59,58,16,82,98,24,6,145,72,4,203,178,112,93,151,141,91,54,177,126,253,122,206,56,235,76,38,117,76,100,241,157,119,49,235,128,217,0,172,91,189,6,42,30,105,51,6,174,135,134,143,47,202,204,168,158,
138,173,125,156,235,215,93,67,119,207,32,11,212,63,81,28,86,100,226,17,214,138,199,217,80,218,168,66,74,93,15,227,251,145,250,64,249,247,2,193,91,53,33,196,7,158,216,230,110,59,178,162,74,56,149,24,166,
230,83,159,213,177,132,129,235,84,120,118,251,203,220,242,242,195,172,233,222,73,107,114,28,179,218,231,48,126,118,150,105,45,237,36,141,40,227,106,71,241,213,111,125,131,225,193,33,22,45,90,68,115,75,
11,223,252,234,215,89,191,122,45,119,44,254,61,247,230,86,113,221,13,247,48,191,105,10,135,183,206,100,78,211,4,26,162,85,36,19,81,14,169,154,201,194,9,115,2,106,88,8,164,38,145,186,164,224,149,25,112,
138,148,61,135,157,131,123,88,213,181,137,167,183,191,204,211,219,87,81,138,75,14,57,250,112,106,181,86,170,75,14,95,249,202,87,136,68,35,184,142,75,60,30,39,18,137,236,253,114,15,220,127,63,171,95,89,
141,231,121,28,116,192,28,238,186,235,46,234,26,27,246,254,255,29,247,44,102,110,221,4,178,118,10,148,75,42,14,170,14,134,134,203,68,205,177,104,197,79,115,213,43,223,163,203,31,224,3,226,28,210,25,143,
103,135,159,36,204,171,108,101,95,55,240,39,67,202,119,233,126,97,183,250,71,0,0,82,138,151,122,157,61,236,42,109,39,162,77,97,235,86,73,93,86,99,109,97,3,191,124,246,110,86,236,220,194,196,196,76,206,
108,59,153,108,162,141,134,58,155,73,109,6,154,237,160,75,141,247,79,59,148,229,131,27,185,251,190,123,184,238,151,215,49,127,193,2,190,252,31,95,166,99,252,120,154,26,26,185,243,214,219,121,254,133,23,
184,127,201,131,252,252,185,71,185,242,133,219,137,106,22,163,146,117,76,173,106,163,46,86,69,196,48,145,82,34,164,160,236,186,188,220,183,153,33,191,68,89,120,12,203,10,42,97,208,49,103,34,255,124,222,
191,51,119,238,60,38,118,76,224,75,23,126,137,187,22,223,133,105,154,100,210,153,189,223,167,84,44,242,236,178,103,185,242,202,43,89,252,135,187,241,60,143,108,54,203,77,55,253,230,53,194,207,13,13,243,
252,179,203,249,204,152,99,137,232,22,69,167,68,212,2,67,135,68,68,208,43,74,180,91,141,156,100,127,140,159,22,190,205,156,232,76,52,219,102,197,142,151,8,53,190,16,122,252,191,15,57,149,127,33,232,26,
218,193,190,217,0,239,250,25,65,40,159,165,121,49,188,225,161,158,223,141,61,199,30,205,11,219,122,248,221,182,37,108,175,108,160,53,54,129,69,99,46,32,73,51,229,10,12,13,59,140,106,144,188,218,181,149,
171,158,186,145,139,143,255,36,115,90,39,147,126,62,193,79,126,242,19,126,251,155,155,185,242,170,171,120,228,145,71,72,167,211,84,42,21,170,170,171,57,247,220,115,89,180,104,17,157,59,59,121,250,153,
167,185,232,171,23,179,170,103,7,205,51,166,178,109,168,159,114,165,20,164,112,149,34,145,72,178,108,199,6,182,110,217,202,151,191,122,17,103,124,228,12,210,201,36,17,59,66,42,149,66,74,73,161,80,192,
43,7,236,226,8,163,183,105,253,6,126,123,235,173,220,250,187,91,89,241,210,74,178,53,53,92,248,197,47,242,232,99,143,177,109,235,54,98,137,248,107,190,247,189,15,220,79,110,91,55,199,30,121,8,195,5,7,
199,1,215,87,161,175,161,48,240,169,228,242,212,151,71,113,146,252,8,15,58,191,33,191,45,135,167,252,237,192,234,48,148,235,12,41,223,159,1,95,3,62,14,92,73,48,63,160,252,143,1,0,165,118,105,82,187,116,
85,97,217,47,174,222,114,49,5,167,76,75,172,141,83,58,62,78,123,166,131,162,3,57,215,197,212,21,117,73,168,79,41,190,245,212,239,232,27,168,224,12,167,200,88,73,198,232,181,92,245,147,31,113,221,207,174,
229,164,147,78,226,226,139,47,230,137,39,159,68,8,193,143,127,252,99,62,243,153,207,208,212,212,68,203,168,22,62,60,234,195,44,93,186,148,141,27,55,242,139,159,95,139,166,105,84,28,7,41,4,82,211,176,45,
139,143,127,252,227,92,123,237,181,180,183,180,50,121,194,196,255,118,205,177,88,140,250,218,58,138,133,2,215,93,119,29,47,173,88,201,45,191,189,133,124,161,64,109,109,45,151,94,114,41,231,124,244,28,
26,26,27,184,227,142,59,56,255,147,159,100,112,112,144,250,134,250,17,231,135,255,252,233,79,56,161,125,1,166,91,203,198,157,14,142,27,12,134,212,36,72,215,103,104,143,203,96,175,131,101,88,28,80,53,142,
251,246,236,97,208,29,174,16,116,10,15,135,230,127,87,24,250,237,4,174,5,62,22,86,89,189,176,95,252,175,222,213,0,0,240,60,127,27,120,123,214,149,95,172,61,46,249,97,78,106,253,4,26,146,190,188,139,105,
64,93,70,81,159,129,81,181,6,207,237,124,145,231,55,111,230,159,167,125,150,141,155,37,13,53,62,223,62,238,211,124,234,182,111,113,202,25,31,226,186,159,254,23,143,63,241,4,231,159,127,62,215,92,115,13,
151,95,126,57,215,92,115,13,11,22,44,96,254,252,249,180,183,183,179,102,205,26,214,174,93,203,202,149,47,49,121,202,100,98,209,232,107,82,196,13,13,129,169,238,235,235,99,215,174,93,116,119,119,211,215,
215,71,103,103,39,157,157,157,12,13,14,113,235,93,183,51,52,60,204,103,63,251,217,128,208,168,175,231,115,23,92,192,41,167,156,194,244,233,211,247,158,107,220,184,113,68,162,81,250,251,250,246,190,119,
253,13,191,226,213,101,47,241,237,147,175,98,199,30,197,238,1,133,227,9,132,167,144,190,135,95,114,200,247,57,148,29,11,145,233,229,151,131,87,143,8,191,139,96,36,76,46,124,61,50,32,2,224,169,80,243,125,
130,1,92,21,222,198,231,9,188,85,0,136,4,168,85,199,11,33,110,85,74,157,240,82,254,241,209,135,230,23,146,149,19,169,168,10,134,38,169,73,11,70,183,26,244,21,134,249,225,147,191,101,66,124,1,113,119,52,
3,131,101,106,98,138,241,117,77,252,250,244,111,113,254,29,151,49,243,192,217,92,248,197,47,210,222,222,142,166,105,92,113,197,21,56,142,195,146,37,75,184,254,151,191,100,251,246,237,228,11,133,48,219,
119,40,53,53,53,84,85,85,49,170,165,133,108,182,150,84,58,197,83,79,61,133,174,235,252,240,135,63,228,187,151,127,151,124,46,79,185,92,126,157,239,34,209,164,198,135,78,61,149,15,156,124,18,7,28,112,0,
99,199,142,253,239,76,87,125,61,213,213,213,12,13,6,114,90,183,102,45,95,249,242,151,249,215,57,167,210,81,213,206,138,141,37,114,69,65,185,228,227,58,62,158,227,225,149,125,116,199,64,166,115,252,166,
255,26,86,231,215,228,65,220,14,42,17,150,212,45,13,133,63,180,159,150,15,133,73,161,234,253,18,65,242,237,42,17,123,43,0,48,3,248,108,152,168,248,129,82,106,27,240,124,167,183,235,155,215,119,254,160,
101,81,227,103,168,143,79,198,41,105,236,232,82,8,33,185,237,213,63,146,43,218,28,210,126,28,82,58,212,38,21,213,81,197,246,206,34,149,74,134,171,142,251,22,15,111,121,136,75,190,122,25,219,138,61,248,
202,103,194,196,137,28,115,244,209,92,112,193,5,148,138,37,182,110,221,202,191,125,246,223,88,178,100,9,167,126,240,20,82,169,20,133,98,145,165,203,150,242,242,203,171,73,36,18,236,233,222,131,235,186,
40,165,56,114,225,17,12,14,14,50,170,181,149,209,163,71,51,113,226,68,218,218,218,248,195,226,187,185,228,146,75,248,234,69,23,51,97,234,228,55,71,120,36,66,165,82,161,171,167,155,220,192,16,31,254,200,
233,76,51,155,248,212,188,15,226,148,93,18,81,197,208,144,162,226,122,56,37,15,199,83,68,116,11,35,154,227,215,93,63,99,233,208,179,165,160,124,78,109,8,211,232,227,195,130,218,253,51,121,35,205,32,131,
251,69,0,206,187,213,7,48,129,69,192,233,97,44,123,91,136,216,150,112,63,251,217,250,210,171,159,253,238,214,47,213,206,141,31,197,65,153,19,17,238,4,54,236,217,202,189,91,159,226,180,177,231,145,180,
18,212,164,138,52,101,161,236,194,166,157,138,193,188,195,168,172,198,89,51,62,192,194,177,51,184,110,249,31,184,113,197,253,92,122,233,165,236,233,238,230,184,163,143,161,38,91,67,199,132,14,230,205,
155,199,19,143,63,193,119,190,243,29,90,219,219,0,40,228,243,184,174,75,34,158,224,230,155,111,230,204,179,207,226,115,159,251,28,95,252,226,23,223,240,75,188,248,226,139,148,43,101,10,165,255,185,85,
95,215,130,49,52,151,94,118,25,223,191,252,123,208,89,224,242,83,46,33,34,163,120,178,66,54,45,112,139,30,94,81,81,41,67,84,179,176,19,5,110,238,250,5,79,244,63,94,18,136,59,85,32,124,135,96,130,234,156,
48,157,59,146,229,27,121,102,128,23,146,65,229,144,184,116,223,206,2,209,191,22,0,237,192,133,4,45,205,151,133,165,74,217,240,223,126,88,48,178,4,216,50,236,21,78,89,50,184,248,136,101,131,143,167,15,
236,59,154,178,95,166,214,108,166,221,154,76,165,92,38,95,18,108,239,85,228,11,130,193,162,12,179,30,62,185,114,137,246,234,6,190,113,244,199,88,52,235,120,238,125,249,41,110,250,234,85,252,215,15,255,
147,3,15,153,203,7,78,57,137,98,165,140,174,235,175,233,229,136,198,98,123,95,87,85,87,5,33,93,225,205,103,82,250,158,31,20,157,20,223,248,119,122,187,123,88,185,98,5,119,221,121,39,155,54,111,198,46,
11,142,31,189,144,15,47,56,21,111,184,150,77,229,50,49,83,97,73,65,109,141,68,87,26,182,225,49,224,119,113,123,247,45,60,208,185,196,241,21,247,129,90,23,38,110,118,132,38,254,233,176,218,103,100,68,156,
190,223,94,239,189,78,232,239,58,11,48,53,12,93,46,13,47,174,53,68,113,57,244,106,135,194,247,7,8,218,159,159,28,98,224,232,135,134,126,55,31,72,76,177,15,98,67,215,139,52,167,199,225,59,49,250,7,21,190,
80,8,161,208,245,128,171,47,84,4,50,239,163,73,168,141,54,115,230,140,211,57,105,210,9,172,239,89,207,31,151,45,229,170,199,190,201,230,226,30,92,215,225,146,111,95,194,236,185,179,233,24,63,129,214,81,
163,72,103,50,164,51,25,116,105,48,66,254,190,217,138,39,2,192,172,124,113,5,7,29,120,16,123,250,187,217,186,109,43,203,151,47,103,237,170,53,172,122,113,37,185,93,125,52,154,25,254,227,192,51,89,208,
60,139,90,109,52,91,119,72,214,238,174,96,73,159,164,45,169,205,232,232,137,18,175,56,43,120,176,235,89,158,235,93,193,246,252,246,138,231,251,247,133,10,82,10,189,252,13,33,8,126,25,150,122,105,161,53,
213,222,164,8,231,109,93,226,111,248,156,25,102,1,235,194,215,195,97,77,224,32,251,70,159,68,67,203,80,31,122,180,199,2,103,1,174,37,172,170,137,177,89,204,169,89,72,71,102,58,217,104,29,134,110,224,9,
151,104,36,24,208,148,138,11,76,3,42,149,160,59,56,25,147,52,215,74,108,211,163,175,48,196,139,157,155,89,181,107,19,47,117,174,97,219,96,39,5,205,193,51,65,68,12,106,235,106,17,192,131,75,30,98,193,252,
249,124,240,131,39,163,235,6,66,5,13,154,158,227,81,44,22,121,244,201,199,121,232,161,135,136,198,162,140,110,29,77,85,52,129,55,84,194,47,42,154,35,77,76,173,29,203,156,166,113,76,111,104,37,19,139,225,
56,130,173,59,92,214,172,247,232,235,87,72,36,190,44,208,103,173,229,249,210,163,220,191,237,113,242,149,98,57,172,217,91,17,42,192,136,240,95,13,179,125,3,225,61,172,10,139,107,71,162,129,60,127,231,
73,33,127,45,0,36,193,168,147,108,248,115,68,243,135,121,237,112,99,45,180,12,137,176,206,237,115,161,217,91,14,76,214,164,118,64,220,72,142,74,25,85,86,71,98,50,179,210,243,104,141,79,38,170,39,49,12,
13,203,242,48,76,133,231,7,13,198,85,9,104,107,146,100,146,2,199,17,12,13,11,138,37,16,90,25,221,44,48,80,238,230,149,93,155,89,183,123,39,3,249,2,21,81,68,233,21,202,78,37,24,39,35,131,18,115,129,192,
245,37,186,167,81,109,199,24,147,109,32,101,70,177,164,65,83,170,134,170,72,45,229,130,77,185,96,99,107,22,233,152,164,42,21,48,123,202,151,244,118,249,188,178,170,200,203,59,119,241,92,97,57,235,156,
85,68,147,62,199,78,152,195,138,158,151,249,253,218,71,6,128,95,132,202,80,12,227,252,77,33,245,219,23,250,1,90,120,239,70,238,95,238,237,38,125,222,106,39,208,221,207,220,151,217,55,213,210,127,93,177,
200,72,69,139,30,162,253,225,208,71,232,243,124,111,89,206,29,110,42,169,226,228,93,189,91,103,62,55,240,100,253,40,123,140,152,148,152,73,71,124,58,77,145,81,216,70,28,164,68,9,15,195,85,244,27,10,167,
36,201,23,20,61,253,138,114,89,145,78,8,70,53,164,104,172,74,209,170,143,97,138,86,33,95,240,72,37,160,169,94,18,141,131,167,92,28,229,225,251,80,40,41,122,7,160,82,210,201,196,76,154,107,45,18,209,32,
141,233,122,62,125,131,30,219,250,61,122,122,21,189,101,69,222,86,200,172,192,174,241,233,43,238,230,225,13,171,184,103,203,114,158,31,88,77,99,172,138,211,38,30,203,236,250,121,52,37,26,105,179,95,228,
143,155,151,167,135,43,185,86,165,212,163,161,5,216,18,90,128,126,246,245,251,171,253,42,126,252,191,7,239,255,86,2,64,133,154,238,188,174,72,65,189,73,162,136,112,171,240,66,254,219,12,57,240,138,231,
185,155,60,207,93,41,132,88,82,80,249,137,27,138,175,76,221,92,90,63,245,241,190,251,226,45,214,104,166,166,102,210,100,183,144,212,171,81,197,52,238,144,133,37,53,42,174,34,151,23,248,190,66,166,161,
98,123,20,29,193,174,173,30,27,54,184,20,138,62,213,113,129,93,146,196,219,13,18,177,40,152,18,199,241,113,75,62,185,78,151,174,126,69,143,85,193,43,185,52,55,105,216,118,208,130,238,59,130,202,176,34,
215,237,211,59,88,100,157,179,139,135,228,171,172,19,207,178,57,191,157,225,252,48,135,100,39,243,195,57,31,101,118,235,76,52,43,203,250,61,130,149,27,139,152,230,24,166,100,166,177,180,251,153,137,202,
83,139,9,58,125,182,135,214,96,255,34,15,21,42,145,251,247,220,243,223,74,0,252,165,233,202,198,112,139,232,39,232,43,232,10,95,107,64,74,41,181,187,226,148,183,86,156,242,50,77,106,205,142,94,153,52,
232,245,79,125,57,255,252,232,82,185,100,143,141,182,81,165,213,225,56,26,184,90,88,251,167,33,80,216,150,75,124,139,135,161,75,10,67,146,254,97,112,240,209,241,72,109,85,84,85,233,36,98,38,227,51,141,
76,170,25,135,94,168,97,247,230,40,165,92,130,152,110,145,53,4,84,9,44,93,226,186,14,67,131,3,172,221,189,157,187,55,47,103,77,249,85,186,216,70,19,73,102,39,155,184,104,204,105,204,174,31,75,99,170,22,
21,137,51,224,73,182,13,42,246,12,42,6,43,46,113,25,99,118,245,161,188,208,191,188,165,236,87,50,74,169,145,33,15,111,20,207,191,99,207,12,126,91,168,224,63,35,116,236,221,175,152,177,63,100,193,70,30,
146,16,11,125,133,140,231,123,187,188,74,113,45,130,63,106,186,126,90,115,172,238,232,243,219,206,165,84,112,41,251,5,186,134,122,216,227,236,162,155,78,42,126,145,164,22,165,218,139,96,121,6,37,97,145,
176,12,124,71,71,87,146,38,223,166,85,233,108,31,218,193,83,189,47,240,240,134,23,233,26,30,100,200,241,73,209,72,21,213,140,173,84,113,116,101,44,202,44,242,240,174,21,172,220,189,129,82,185,66,214,170,
226,184,200,68,102,196,78,96,118,125,27,163,155,50,216,105,147,162,18,12,34,24,172,152,244,149,52,118,231,21,5,223,5,77,224,8,159,137,213,51,168,233,204,38,119,56,59,218,80,44,229,29,126,50,216,187,5,
0,77,161,3,164,135,218,80,98,95,117,235,72,145,227,64,8,134,56,144,18,136,164,175,252,88,90,101,169,46,79,67,10,104,173,51,168,157,40,136,25,14,150,112,144,202,199,212,193,178,130,249,192,67,121,232,31,
84,56,133,96,44,77,42,226,83,83,45,48,162,18,71,42,114,78,153,45,3,123,88,51,184,147,237,195,3,188,220,189,145,85,197,167,121,126,229,147,232,120,76,142,142,226,83,163,143,99,78,213,56,154,162,245,104,
154,141,180,4,90,76,224,91,58,3,24,244,22,116,250,10,146,161,130,36,87,241,41,185,160,27,146,184,110,18,49,13,162,213,77,164,236,12,59,135,118,54,42,84,58,140,134,134,254,158,149,62,239,54,0,232,33,73,
180,53,52,249,251,215,178,43,94,91,232,56,226,17,247,72,41,27,20,170,125,186,53,131,206,124,25,79,243,241,11,32,210,6,86,74,18,209,77,116,124,132,6,190,80,40,229,19,75,8,236,154,17,254,76,67,132,35,138,
124,45,152,13,24,183,163,76,79,182,51,139,177,120,158,164,88,44,83,242,43,20,189,60,150,166,81,21,73,162,235,58,158,244,241,36,40,93,160,12,13,76,3,87,152,12,14,235,236,28,86,244,14,249,84,92,31,165,192,
48,53,50,233,8,241,152,77,60,17,67,70,61,146,43,19,32,104,14,183,187,40,111,237,48,142,127,72,0,68,247,179,0,111,54,7,127,127,22,172,2,162,205,247,188,108,154,134,96,78,191,165,145,211,76,118,22,116,202,
189,62,73,91,17,181,20,201,184,34,17,9,70,205,8,20,154,82,8,197,222,254,194,112,236,7,42,124,207,87,161,247,170,124,140,184,129,137,73,90,38,81,40,60,161,112,133,0,169,7,15,128,210,4,74,11,6,87,250,158,
78,69,9,28,207,3,77,18,49,130,142,223,88,204,34,147,73,18,79,197,49,34,54,202,16,76,104,152,206,179,219,151,142,243,5,85,74,41,235,237,78,234,188,219,1,224,134,185,130,238,80,19,188,63,97,14,131,199,239,
120,238,244,58,81,171,71,203,13,148,113,137,75,27,33,37,5,79,208,57,164,49,80,244,201,196,20,24,96,69,130,49,177,66,4,221,68,234,53,103,26,153,243,166,94,235,131,171,160,50,120,196,252,4,37,195,98,223,
79,4,74,72,148,212,81,232,8,77,39,22,147,212,214,40,146,21,137,97,4,195,172,237,72,4,195,142,33,45,19,12,29,33,53,14,104,62,148,59,86,252,166,54,167,114,227,61,215,91,17,70,62,249,255,171,22,192,35,24,
133,214,194,190,198,199,63,167,212,169,165,222,172,161,209,72,83,54,33,110,200,224,113,45,225,199,124,5,174,23,182,132,141,12,224,17,98,191,167,117,177,119,36,204,222,63,165,66,169,11,181,239,247,246,
119,200,133,220,251,65,165,4,74,232,40,161,161,48,16,194,32,26,51,208,45,13,215,211,17,194,66,104,38,74,55,65,152,40,52,124,199,195,45,13,51,46,50,150,246,84,7,175,244,172,152,226,225,221,199,190,103,
4,255,159,180,0,35,82,200,133,214,32,191,31,135,240,63,173,134,116,194,228,240,137,81,202,154,142,23,213,41,72,80,82,97,155,10,203,8,134,58,166,146,193,236,192,189,211,69,196,235,121,206,253,58,77,247,
14,95,149,175,157,8,54,210,103,232,171,176,33,85,162,100,32,120,133,17,0,1,19,169,25,152,194,68,211,13,124,97,160,48,241,164,17,62,31,208,65,87,67,104,229,110,26,148,71,107,172,133,117,125,171,154,66,
2,44,190,31,11,248,127,18,0,46,251,30,139,226,240,167,171,92,12,160,161,38,102,51,105,114,148,138,14,142,169,83,246,131,57,194,134,22,76,236,146,225,252,96,77,188,1,193,173,94,143,191,253,180,95,168,55,
142,196,71,132,143,134,82,35,194,55,240,149,129,143,137,239,27,120,152,193,251,202,64,9,13,161,60,148,114,209,200,97,211,139,169,13,16,141,72,90,99,89,164,210,179,82,200,140,175,252,88,232,248,214,0,231,
2,211,66,94,36,23,38,214,158,36,152,18,90,250,223,8,128,191,38,197,105,1,217,88,41,77,62,39,49,179,96,69,5,150,32,104,4,101,159,137,87,123,247,116,17,118,20,191,145,253,9,223,23,234,117,0,217,59,7,54,
124,75,162,208,241,67,193,143,8,218,199,196,87,38,158,10,76,189,18,50,104,97,87,5,116,85,66,80,198,144,195,24,42,135,46,42,88,186,206,152,120,13,66,137,132,16,50,142,242,109,130,9,43,159,213,49,71,71,
201,132,90,225,226,82,196,161,232,40,212,42,130,30,193,155,195,124,201,255,42,11,240,151,182,49,69,128,186,220,64,13,207,173,118,105,159,162,147,84,193,163,94,116,77,188,241,169,70,132,204,27,252,191,
122,51,232,133,128,80,98,175,240,21,58,132,194,247,48,1,35,20,190,69,144,255,115,65,149,144,194,71,163,128,33,134,145,56,72,225,4,207,46,83,62,186,231,146,21,145,255,223,222,153,199,90,122,222,245,253,
243,123,158,231,93,206,126,238,126,239,236,158,241,216,198,118,136,51,182,227,144,56,11,110,154,128,66,64,74,84,67,104,171,34,182,10,16,170,84,90,169,18,82,43,181,168,180,21,234,31,253,167,130,178,136,
208,2,37,9,1,3,45,177,66,98,218,96,226,196,9,222,48,30,236,216,227,241,44,190,51,115,151,115,238,89,222,237,121,158,254,241,188,103,238,245,196,129,86,181,205,101,226,87,58,154,163,171,153,163,59,231,
183,111,223,47,82,122,173,69,140,133,251,129,127,50,199,9,110,225,253,44,113,12,133,71,33,120,114,54,56,27,93,230,249,83,23,120,250,212,128,75,63,12,252,115,224,23,120,157,233,99,247,51,125,252,91,129,
185,22,71,57,189,3,59,103,160,63,132,195,171,176,208,13,123,247,51,16,25,173,119,19,195,93,132,242,255,183,244,100,87,248,81,237,1,98,28,17,248,96,249,149,139,112,94,161,164,196,168,33,74,38,8,21,90,10,
212,236,70,83,228,170,14,122,103,153,87,41,177,55,84,74,223,4,229,119,47,115,138,163,124,39,66,147,33,142,54,49,77,18,154,204,113,128,99,52,120,63,153,217,230,17,245,64,247,209,242,193,159,247,222,189,
21,248,233,58,84,188,46,247,1,251,89,1,62,184,200,33,89,138,143,80,24,205,70,21,49,29,8,121,229,185,210,242,180,26,130,181,30,235,60,157,38,44,205,11,105,116,141,224,191,145,237,92,19,2,188,223,35,124,
137,112,236,186,124,231,35,138,74,147,149,14,103,43,18,147,17,197,19,140,30,163,37,228,115,94,4,239,194,49,172,175,43,9,79,197,193,100,158,121,211,245,27,213,214,189,115,156,92,56,196,119,48,196,225,24,
208,37,38,69,17,147,208,192,208,20,77,35,54,44,182,14,115,180,249,19,172,100,107,252,143,141,143,255,184,243,86,1,255,130,48,86,126,205,247,3,247,171,2,52,128,247,174,113,3,253,104,17,147,8,218,40,172,
135,75,67,225,210,192,17,227,177,40,112,48,215,113,40,5,115,189,0,51,167,20,68,42,32,142,127,189,228,235,68,112,86,234,161,175,186,125,47,193,234,175,38,124,62,34,47,21,195,113,201,104,90,224,125,69,195,
84,248,22,232,166,70,148,167,242,17,185,141,241,14,196,91,4,75,228,114,148,56,250,166,67,63,234,38,84,28,63,194,157,204,211,37,165,196,1,109,52,61,26,204,211,161,151,52,105,116,98,146,212,144,52,52,253,
94,196,15,183,255,1,233,153,140,79,158,249,141,127,72,216,185,124,120,79,2,237,175,119,5,184,25,184,235,152,220,74,28,71,196,177,70,105,133,115,224,172,199,57,161,34,48,121,152,48,2,96,48,246,84,53,125,
75,172,161,221,8,215,201,90,95,83,14,206,184,140,246,8,223,73,20,226,188,196,181,240,67,204,47,42,205,206,180,98,107,56,101,50,201,241,88,178,72,112,24,68,117,73,99,71,110,99,198,101,131,210,10,190,42,
192,229,52,212,132,118,225,152,22,37,134,84,0,253,53,62,203,75,60,76,194,60,107,220,204,34,223,202,81,86,105,55,34,90,139,9,113,211,96,18,69,183,37,172,46,194,209,101,195,63,94,248,46,254,244,202,31,183,
206,143,46,124,132,176,74,230,216,93,183,187,174,21,224,59,58,244,229,176,58,137,73,132,40,86,24,227,9,23,222,14,35,158,36,242,52,18,79,106,32,142,161,168,132,201,64,112,62,240,10,85,22,84,199,211,84,
175,196,125,14,201,222,158,152,63,203,244,103,150,95,187,253,210,26,38,133,99,56,202,216,25,79,153,102,5,130,199,90,131,138,18,84,210,33,198,80,90,69,86,41,242,210,97,11,133,181,130,113,142,56,47,152,
102,158,150,94,6,88,31,113,229,41,96,5,206,222,116,145,199,226,231,121,136,31,106,253,75,22,151,111,129,150,197,196,138,40,18,218,109,207,92,199,211,237,150,156,154,91,229,222,67,111,227,191,63,115,225,
29,4,40,190,41,187,144,48,175,137,18,168,125,170,0,31,56,194,77,204,153,101,154,45,69,191,5,253,38,204,181,28,75,125,199,193,69,199,177,21,207,241,85,56,188,2,115,237,192,38,50,24,195,112,4,219,59,48,
24,11,147,60,80,21,248,87,160,189,74,221,144,139,174,190,102,217,190,171,19,190,210,26,38,185,103,56,202,25,238,76,152,76,50,138,162,160,40,43,242,210,49,45,20,19,155,50,170,26,140,203,136,172,128,34,
175,200,242,138,172,240,12,51,197,197,105,204,21,221,226,230,133,123,168,221,246,163,192,167,128,159,7,158,222,102,157,7,229,191,162,186,158,184,25,161,99,33,77,2,83,73,154,6,194,138,126,35,226,190,27,
238,36,54,241,145,122,154,218,171,203,99,185,158,61,192,141,192,169,101,78,208,78,154,204,119,97,185,231,105,181,66,179,39,209,144,198,129,52,42,137,192,58,216,30,129,29,6,130,231,170,12,214,31,71,48,
206,2,51,104,234,195,23,42,74,161,174,198,252,144,240,89,102,46,63,193,249,8,107,13,89,225,24,142,51,182,182,71,12,71,83,242,172,0,239,17,165,177,70,112,46,208,216,120,28,101,89,81,149,37,101,81,82,150,
37,85,85,226,170,10,235,64,167,134,227,107,39,152,59,191,188,182,85,93,154,39,220,254,191,68,0,131,248,169,39,71,127,122,248,233,236,75,188,187,255,30,226,56,163,17,7,74,188,70,18,66,151,210,176,212,234,
16,235,88,151,182,236,120,239,103,10,48,190,158,21,224,100,76,218,59,206,73,22,123,194,74,95,88,236,67,183,237,137,116,160,113,53,117,231,79,36,140,122,163,168,238,226,58,168,60,248,10,198,121,240,8,30,
104,164,144,198,154,56,9,199,29,50,139,249,181,219,183,62,193,90,67,229,132,162,116,12,39,57,219,131,9,59,163,49,121,150,99,173,11,120,255,202,213,253,38,133,115,30,87,86,148,101,65,89,148,216,162,172,
177,138,74,188,43,104,70,37,221,134,144,180,86,184,113,233,164,126,244,210,165,53,111,121,152,112,52,179,77,184,4,254,153,51,217,159,201,247,47,191,139,185,94,232,104,70,6,218,205,64,146,129,23,42,231,
112,206,226,241,105,61,81,141,174,123,15,208,144,152,183,173,206,113,242,176,102,101,81,152,107,67,179,1,58,242,200,108,162,87,187,117,77,240,4,38,170,19,59,23,168,227,39,89,200,250,167,69,160,156,105,
165,138,86,75,211,72,13,145,49,136,204,226,189,193,122,161,40,61,89,89,49,205,42,6,59,211,61,194,183,236,54,29,195,78,129,40,193,122,139,171,60,101,81,82,149,5,85,25,132,111,171,18,69,73,167,93,114,112,
25,214,84,139,147,139,71,248,179,141,71,142,86,182,170,68,228,138,247,254,2,97,57,118,48,116,23,250,7,87,43,230,187,130,243,1,197,72,171,112,27,225,60,12,167,37,153,45,60,254,106,220,210,215,181,2,116,
230,186,199,210,145,112,219,219,98,78,204,71,164,253,16,27,163,72,2,138,232,53,220,218,34,144,24,79,51,17,180,10,2,178,206,81,148,193,35,76,115,136,180,39,77,60,237,220,211,110,6,133,80,2,130,195,43,176,
222,145,231,150,241,180,96,60,206,25,79,51,178,44,163,178,246,21,37,164,18,93,207,139,28,182,44,169,74,23,220,254,30,225,99,75,98,83,209,74,45,157,166,16,199,158,219,86,110,32,122,54,94,176,202,246,188,
243,158,176,253,116,6,168,230,211,30,205,88,208,218,161,124,104,103,89,7,54,247,20,14,158,219,56,143,115,182,218,51,219,124,77,87,203,246,157,2,236,12,135,7,78,46,156,100,117,177,67,167,173,49,13,133,
142,229,85,6,169,161,150,247,62,180,134,123,13,80,166,100,103,148,211,212,109,156,11,124,125,101,5,185,64,86,56,198,89,197,78,35,208,189,27,93,161,117,140,82,30,47,144,231,21,163,81,206,52,203,41,203,
234,21,136,229,130,80,184,156,255,125,254,51,188,253,224,125,152,184,129,119,57,222,121,170,178,164,42,75,172,171,192,149,164,186,100,177,99,153,239,212,60,1,198,115,219,242,113,90,81,115,165,40,243,53,
139,77,128,66,68,222,9,178,112,106,225,237,40,12,149,205,176,86,40,74,97,48,242,108,143,132,124,234,120,124,253,37,216,37,224,184,254,91,193,105,163,177,122,80,110,96,114,165,203,196,56,58,77,133,212,
228,16,130,223,237,225,204,218,189,129,172,156,185,150,166,50,23,248,212,139,159,230,163,71,126,128,118,212,13,46,117,198,217,231,160,172,60,121,81,98,140,173,143,61,45,90,23,120,36,100,248,121,121,245,
154,248,149,165,146,98,156,237,240,197,245,207,115,107,239,110,58,76,49,169,69,25,117,213,234,141,148,164,113,201,124,203,178,182,224,153,235,132,220,68,137,227,240,220,34,203,173,69,61,200,6,71,173,181,
9,48,239,241,63,181,16,175,200,209,214,73,38,185,131,66,177,57,116,236,100,176,53,128,225,68,81,148,158,43,227,17,188,18,57,236,186,238,4,166,249,40,95,81,234,0,79,159,137,41,140,176,150,42,218,6,162,
56,12,250,196,10,74,249,221,61,15,194,22,80,154,56,190,101,109,129,66,109,241,212,246,87,121,247,202,7,200,237,43,39,171,1,77,20,172,181,20,226,80,202,162,148,224,157,199,250,192,96,234,95,109,136,228,
132,151,199,23,48,196,232,105,204,148,156,84,60,218,25,132,130,86,148,211,73,44,221,182,165,223,129,78,51,204,42,194,82,81,197,114,187,203,177,238,97,158,219,126,225,70,74,148,49,230,71,43,95,189,239,
222,213,119,115,160,177,198,197,141,80,62,174,111,10,227,74,168,172,128,19,10,87,176,83,108,81,207,2,246,30,148,92,159,141,32,17,89,109,170,214,124,228,186,108,23,138,179,67,67,182,97,232,230,144,106,
208,8,13,227,232,52,67,169,180,55,26,8,142,99,11,93,62,112,226,110,30,248,243,47,112,247,194,187,49,42,10,174,249,154,25,128,247,65,25,156,183,200,53,125,130,107,133,239,29,100,112,154,172,0,0,19,78,73,
68,65,84,216,2,30,219,122,132,149,232,16,145,109,97,173,165,178,30,165,75,90,81,206,90,191,98,190,231,105,53,32,137,131,71,146,171,91,104,158,126,154,114,108,238,0,234,172,204,27,99,238,137,227,232,39,
79,54,142,243,227,119,126,132,27,22,132,81,238,217,30,193,196,42,138,50,252,62,10,97,171,188,194,160,218,130,221,163,146,242,181,14,5,251,170,17,36,200,114,66,58,215,214,93,188,18,198,149,226,242,72,56,
191,161,120,225,130,112,230,34,172,111,122,198,19,176,246,235,255,181,86,37,31,62,121,47,81,84,241,7,231,126,11,235,44,98,21,85,238,168,114,135,171,252,215,141,133,253,95,97,75,222,121,84,105,120,102,
235,113,94,156,60,203,93,221,251,80,42,176,153,227,45,222,133,132,175,211,246,116,90,117,162,234,193,58,79,101,193,218,144,201,27,13,55,45,30,38,86,81,187,219,106,127,79,42,81,247,39,78,125,148,247,220,
124,144,229,165,138,131,43,176,60,7,173,36,16,99,71,70,16,101,121,118,231,113,174,100,235,40,173,214,69,100,182,73,253,154,194,197,236,55,5,232,70,36,113,199,204,163,76,72,241,203,74,152,100,194,36,247,
20,165,167,14,235,187,223,64,61,203,7,141,69,56,60,215,231,39,79,253,32,207,143,255,130,79,191,248,113,198,147,9,118,232,201,182,10,202,81,133,45,221,95,255,245,121,240,149,71,21,134,23,182,255,146,7,
46,253,26,167,250,239,227,112,235,70,136,28,202,8,14,71,85,89,138,2,198,83,207,96,236,217,28,122,54,135,161,19,185,57,128,43,91,158,241,24,156,179,124,219,209,183,176,212,154,95,27,231,227,59,223,183,
118,15,247,223,246,94,180,42,80,42,120,141,94,27,150,122,158,165,158,103,190,227,81,102,202,215,70,79,81,186,124,7,228,188,247,222,241,255,9,12,253,106,143,222,103,10,112,103,79,247,255,222,219,219,31,
164,211,238,145,182,52,105,67,145,70,158,78,234,153,107,133,228,170,215,14,181,191,92,77,13,119,187,123,136,98,177,117,152,35,205,59,248,163,179,255,147,231,182,159,97,181,56,138,217,9,136,159,162,4,165,
67,45,255,170,196,35,30,188,245,136,53,188,56,122,150,79,189,252,203,220,222,191,155,247,46,126,23,162,65,197,10,165,67,205,110,173,195,89,71,94,10,59,19,216,218,129,193,200,51,24,9,155,3,24,140,66,73,
151,38,66,191,213,229,233,151,95,146,164,232,202,79,191,253,39,56,218,109,34,202,130,18,68,84,232,114,198,161,9,212,72,224,242,244,18,191,251,194,111,179,85,108,62,47,74,125,197,123,191,69,56,48,189,82,
123,130,235,79,1,180,152,15,246,213,194,7,223,209,185,143,165,126,139,185,121,195,66,31,150,251,129,89,124,177,11,115,45,72,227,64,37,135,132,89,62,170,137,232,20,135,198,75,138,152,38,43,221,53,110,237,
223,193,227,27,143,242,199,151,63,67,183,156,167,87,44,225,157,3,13,74,201,43,202,234,171,43,2,214,163,93,204,197,252,28,159,184,240,11,220,54,127,23,239,95,173,41,108,52,104,163,240,18,16,199,157,115,
84,78,200,75,97,156,9,163,169,48,202,132,97,166,216,201,194,123,231,125,104,68,53,53,111,89,186,141,119,46,190,135,69,211,65,92,142,6,84,36,136,82,104,77,61,11,16,34,13,95,56,255,8,191,247,252,131,88,
95,125,209,123,255,124,45,248,179,132,147,186,234,186,84,128,94,191,255,253,237,178,125,207,135,143,220,203,77,135,219,28,60,168,88,93,84,44,244,160,215,10,36,211,145,246,117,130,37,184,96,146,92,118,
45,182,173,161,161,99,60,9,72,130,50,134,165,206,2,119,47,221,203,216,102,124,118,235,119,25,22,67,86,170,195,24,27,225,156,197,149,14,87,238,230,253,174,114,168,210,48,40,182,248,205,11,255,153,99,221,
155,248,240,209,191,95,111,154,135,89,194,44,55,240,206,35,212,49,223,135,238,99,229,194,154,186,173,227,191,245,224,188,16,199,208,105,193,66,183,73,44,134,43,151,50,54,46,91,202,74,72,27,97,10,168,84,
232,253,27,165,121,113,123,131,255,240,197,95,226,165,157,243,235,34,242,121,194,54,241,12,73,124,231,181,76,4,247,149,2,244,123,253,31,56,96,186,183,125,236,246,119,113,195,193,54,115,139,154,86,91,145,
24,48,212,109,224,171,35,93,13,98,144,104,158,7,158,123,148,207,125,237,97,190,237,216,59,17,231,113,62,48,172,136,214,164,141,38,183,44,222,197,74,116,140,47,108,127,134,63,159,60,202,114,126,4,51,74,
201,71,5,229,216,226,131,164,240,153,226,220,206,11,252,214,165,255,194,66,115,145,251,79,252,35,154,137,65,43,139,210,212,251,123,53,35,9,234,21,61,57,207,171,108,161,19,182,133,148,8,205,22,180,219,
30,37,142,205,43,150,151,46,132,92,65,27,104,52,132,40,22,180,40,138,66,243,159,30,249,36,159,250,203,207,148,192,239,215,195,163,13,2,178,200,122,157,7,92,127,73,224,247,222,255,125,170,17,39,115,135,
186,75,44,205,53,105,54,133,36,170,251,226,178,55,91,15,199,26,78,234,229,77,211,166,211,152,231,241,115,95,102,148,189,76,36,19,52,57,130,13,27,195,70,136,218,138,123,78,188,157,127,122,235,191,98,165,
179,202,31,216,255,198,70,177,201,96,50,97,48,24,179,243,242,148,233,165,138,245,173,139,124,98,253,23,57,222,58,201,15,222,248,35,172,246,18,230,218,37,11,29,207,124,219,211,109,58,90,177,167,17,105,
46,23,231,248,131,11,191,78,225,10,148,168,87,246,103,101,87,15,172,131,113,30,114,132,202,134,124,160,219,13,247,9,151,7,240,236,89,225,165,139,48,158,64,145,69,252,254,211,143,241,43,79,126,26,2,116,
252,115,181,192,47,213,94,224,53,21,254,190,82,128,139,23,46,244,207,191,116,241,208,154,62,138,207,155,88,84,40,183,94,97,101,10,135,185,122,164,225,37,198,58,56,210,63,192,206,244,10,151,54,159,38,149,
33,177,92,38,150,203,68,108,19,201,152,68,166,164,241,152,163,75,29,190,111,237,99,104,109,121,142,167,40,176,76,200,153,150,5,110,226,120,120,252,32,203,173,69,62,118,195,253,172,205,197,44,116,43,86,
250,176,50,239,88,158,115,44,245,61,11,29,104,167,194,227,219,95,96,88,110,17,235,228,235,58,135,187,141,167,90,113,61,184,42,84,48,58,22,154,45,69,154,64,85,193,230,16,158,191,0,47,188,20,241,191,254,
226,18,63,243,240,207,179,149,109,191,68,64,12,205,106,171,191,80,79,16,175,223,157,192,34,47,223,154,210,186,49,157,28,225,242,166,162,127,16,252,44,83,247,132,51,173,122,139,135,171,251,123,6,113,66,
43,110,32,34,76,203,17,90,42,180,148,136,100,104,63,66,187,6,70,25,162,164,68,183,166,28,95,104,115,207,229,59,121,116,235,9,142,114,43,130,198,96,120,222,63,197,57,125,154,31,59,241,35,28,94,141,104,
117,43,218,77,193,212,223,80,233,32,47,161,104,8,47,110,12,184,144,61,207,59,22,190,147,72,69,148,182,192,251,107,24,231,37,236,36,26,129,88,59,26,177,194,152,48,231,79,82,69,146,10,202,59,202,194,51,
24,107,94,184,96,248,149,51,191,193,211,155,127,81,0,159,39,172,126,109,215,113,127,189,30,32,189,230,103,101,251,70,1,158,124,226,201,119,46,155,163,81,211,30,98,84,89,172,15,20,47,202,239,45,245,234,
114,207,135,179,44,71,132,246,49,131,233,14,149,171,232,37,157,122,164,234,81,216,176,183,175,75,162,88,194,45,79,199,194,188,229,190,213,59,120,116,244,37,198,246,2,39,184,131,139,250,57,62,167,62,201,
253,55,127,136,247,222,124,51,141,118,69,26,131,54,62,116,245,60,196,6,210,216,83,37,158,204,106,58,105,24,36,41,217,21,248,204,251,139,130,72,67,98,28,105,12,115,109,85,207,248,125,224,33,140,37,76,36,
77,72,34,141,79,249,163,151,255,144,207,94,124,96,230,250,207,212,2,159,37,126,91,188,78,136,161,251,34,4,252,219,159,253,119,146,38,141,247,245,236,42,41,109,74,7,195,41,1,123,183,80,148,214,96,189,198,
250,122,95,95,102,103,90,9,168,148,245,241,21,26,81,147,185,214,10,206,239,30,6,134,137,129,67,235,138,36,118,180,218,142,222,92,197,237,135,150,185,123,249,22,206,53,30,103,52,119,154,135,226,223,228,
163,183,191,155,31,184,243,239,176,184,88,209,105,213,8,78,83,207,96,228,25,79,9,231,233,132,209,243,129,126,147,195,221,5,46,101,47,134,185,196,76,248,42,236,39,118,27,150,165,174,229,240,146,231,134,
3,158,3,75,161,190,215,58,104,180,137,133,180,169,136,98,33,137,155,124,121,243,243,124,252,204,207,81,185,242,244,53,174,255,92,93,254,229,188,78,71,165,251,162,10,248,210,35,143,28,180,57,255,250,109,
230,190,198,193,228,4,113,67,227,77,140,69,81,89,77,153,67,89,132,107,29,81,161,212,155,237,237,139,78,248,196,147,191,69,106,18,254,238,201,239,198,59,133,67,97,125,76,233,82,42,23,22,104,68,5,94,65,
37,158,196,8,109,221,228,227,23,63,197,57,115,154,239,255,214,111,231,135,238,254,16,157,158,32,226,153,102,176,53,12,241,121,48,14,59,5,101,189,95,16,246,15,52,151,38,91,124,117,253,25,110,239,223,137,
243,26,143,39,50,158,126,203,179,54,15,171,139,176,50,15,243,61,161,213,132,56,86,104,19,26,80,222,195,116,226,25,143,83,30,221,250,34,191,116,238,103,153,186,241,215,8,235,223,3,194,25,253,243,4,64,141,
215,21,89,100,95,132,128,209,104,244,190,101,115,112,126,41,58,204,212,58,6,153,160,183,133,9,18,106,127,21,122,0,115,93,69,187,105,208,38,198,17,163,164,193,122,118,133,175,158,123,148,247,159,252,16,
133,90,13,19,64,155,225,157,165,170,0,87,18,169,156,68,77,48,146,33,145,160,154,21,135,150,150,88,108,246,248,222,91,62,200,143,222,249,97,74,83,80,84,142,44,131,43,91,112,105,16,26,57,149,133,72,121,
26,9,116,154,158,126,7,250,45,199,169,181,111,225,183,159,249,60,23,167,103,88,77,110,166,32,64,213,244,154,176,178,32,244,187,33,108,132,93,50,130,2,214,96,4,145,17,230,250,41,151,245,179,252,218,133,
255,200,196,237,156,33,240,0,111,215,238,254,165,218,250,135,236,99,176,232,215,236,73,162,244,221,135,204,113,186,44,226,188,163,242,80,88,24,77,97,146,123,180,135,110,234,137,141,144,36,17,162,195,38,
175,74,82,158,56,243,24,211,124,194,187,14,125,27,216,140,210,41,172,109,32,46,71,92,134,119,158,210,27,240,41,86,28,120,79,110,133,81,25,211,143,231,153,79,150,24,100,142,28,79,89,193,104,12,155,59,48,
152,10,69,17,172,62,243,66,233,102,144,38,30,239,28,75,201,10,199,122,7,121,98,235,171,172,173,222,140,242,130,17,143,209,97,20,172,197,99,173,32,42,48,155,10,187,108,232,74,41,172,46,121,224,226,111,
178,85,93,26,2,127,88,11,126,70,28,121,102,143,235,127,93,159,253,160,0,237,68,197,239,92,149,27,80,54,198,19,120,134,33,76,213,188,243,104,165,144,122,135,63,0,49,196,56,73,40,176,60,118,254,43,188,101,
233,24,111,93,136,168,236,25,114,18,172,8,90,103,24,83,160,196,225,188,66,196,35,88,198,165,102,115,170,89,159,36,76,43,225,202,200,177,190,9,149,132,44,63,43,32,47,32,209,158,180,21,20,192,59,65,27,208,
34,20,133,103,203,122,178,88,115,36,189,133,7,215,255,148,233,98,70,164,34,42,15,211,2,6,59,144,23,193,213,71,17,36,169,35,73,20,70,194,246,82,100,12,207,13,78,243,229,245,47,33,74,30,242,206,95,172,151,
62,94,172,93,255,203,123,178,126,127,125,43,128,112,139,38,186,125,205,156,0,171,174,102,221,174,244,16,121,154,13,67,191,149,208,107,55,104,183,90,136,78,176,245,74,183,146,41,103,54,158,229,219,15,158,
164,33,67,10,85,16,41,193,59,65,164,166,128,7,144,221,5,18,151,24,180,142,174,182,110,199,185,176,51,13,75,165,74,132,102,26,92,125,164,67,151,110,86,207,207,20,178,40,96,146,11,195,137,39,113,7,201,170,
41,165,43,208,18,81,148,194,246,72,2,253,188,132,93,130,56,134,102,83,104,183,161,211,133,118,199,99,210,208,213,48,202,32,200,142,199,79,235,65,207,25,2,172,236,140,157,221,95,247,30,64,80,7,12,177,116,
76,151,200,106,180,82,40,160,97,132,94,59,98,174,215,164,223,105,210,106,52,48,166,129,215,49,21,134,200,8,211,106,200,230,104,147,183,244,143,227,243,28,180,67,137,162,18,77,94,198,88,167,66,61,46,130,
214,21,177,42,73,140,101,190,9,157,196,162,197,211,140,28,115,29,79,163,6,166,86,53,62,144,72,232,207,75,221,241,117,78,40,43,200,50,79,52,246,12,118,28,253,164,135,243,150,81,177,67,26,181,40,5,118,44,
140,11,117,245,72,89,105,136,71,208,216,17,250,99,88,181,144,44,58,142,205,175,112,172,119,136,75,147,141,163,117,221,127,161,182,252,17,175,35,69,204,62,12,1,254,137,169,31,109,108,200,75,11,55,166,71,
17,227,232,55,35,142,31,106,211,237,55,72,147,6,113,146,162,116,90,95,238,26,28,26,209,154,23,54,94,192,85,21,75,210,195,141,42,138,40,162,210,9,227,42,101,144,53,200,173,193,104,69,100,20,205,40,163,
151,110,146,170,156,185,118,197,74,175,162,17,121,14,244,28,199,150,29,62,13,99,226,178,130,194,134,228,207,75,72,222,16,80,90,104,70,97,18,217,72,61,157,150,167,82,17,6,184,188,253,50,253,214,10,78,91,
124,172,16,31,26,88,30,192,133,252,161,240,130,83,66,171,3,165,181,28,234,207,113,219,210,113,30,57,255,216,90,237,234,71,132,229,207,55,76,248,251,66,1,188,247,103,198,213,206,67,207,86,95,249,232,29,
189,247,80,89,69,171,21,177,184,216,162,213,106,67,29,247,195,5,143,193,138,194,18,174,133,95,220,60,67,195,180,129,121,182,166,41,59,69,155,9,9,147,74,51,41,21,149,5,99,52,113,146,80,184,20,45,57,81,
90,18,197,142,197,94,128,152,235,181,60,237,134,98,232,29,163,66,152,100,144,85,66,89,23,94,206,135,86,73,98,194,73,122,43,246,116,19,232,116,20,94,34,98,177,108,110,111,146,21,37,62,169,136,59,1,68,202,
171,93,176,49,239,235,207,209,161,28,245,222,19,107,205,106,123,1,2,58,106,187,238,201,188,225,104,162,251,162,10,112,206,127,238,116,246,196,71,39,139,23,233,235,19,100,25,148,69,140,116,18,188,24,44,
81,104,2,73,216,250,113,94,240,222,241,226,214,11,28,92,188,25,215,191,157,139,227,9,19,23,145,87,142,178,168,40,139,10,231,42,74,81,97,17,52,214,216,60,133,202,176,212,42,136,163,112,93,108,209,12,115,
205,133,137,176,147,135,67,146,210,133,243,47,231,193,214,41,105,172,161,95,57,124,215,211,109,120,210,72,209,237,68,196,49,236,108,12,200,166,37,54,42,17,4,165,4,137,212,213,54,182,210,130,50,97,7,65,
17,102,2,182,132,200,55,169,133,63,71,64,17,123,195,33,101,247,75,43,248,179,155,249,230,185,79,110,252,226,161,247,119,63,194,129,248,46,186,77,141,209,138,188,198,229,177,42,128,67,89,31,230,237,59,
147,41,231,7,231,57,185,248,54,50,211,11,5,115,85,82,149,54,220,234,85,225,78,207,91,135,202,166,140,181,98,203,85,140,83,240,11,144,21,194,40,135,115,219,17,207,172,71,92,158,150,148,78,176,181,224,189,
187,122,69,14,62,40,75,94,42,156,247,120,241,117,179,201,32,74,177,83,142,200,168,200,139,12,103,29,54,119,68,45,131,78,20,42,81,136,209,120,47,84,149,103,58,245,76,134,158,113,102,121,122,253,44,236,
114,4,52,9,88,130,111,24,111,240,126,81,0,169,75,159,31,123,108,251,209,127,243,220,232,153,59,158,224,46,244,145,239,225,190,246,93,180,227,53,198,110,145,66,90,84,62,192,196,107,229,17,229,216,201,119,
40,10,75,145,215,167,89,245,157,222,236,84,171,44,75,108,85,225,189,173,75,202,138,29,229,24,13,133,97,85,242,244,230,139,24,253,101,230,26,247,132,108,205,187,32,120,87,175,136,239,137,196,165,64,85,
10,206,134,41,222,184,9,249,88,24,79,45,66,69,73,197,136,140,44,43,201,46,150,52,26,49,113,59,34,233,106,240,49,162,132,169,40,46,59,77,53,80,60,124,225,75,124,230,236,67,16,232,100,70,236,210,198,124,
211,121,128,153,157,253,9,240,147,163,106,244,145,7,207,62,244,161,135,95,126,228,166,251,110,56,197,169,181,155,57,60,119,132,35,115,199,104,196,93,82,157,208,75,26,84,126,133,97,54,228,236,139,23,217,
72,175,224,140,197,122,91,43,66,56,215,178,85,253,178,21,206,134,86,186,5,174,84,17,15,111,62,193,133,236,28,231,207,125,130,227,221,219,184,119,245,3,20,174,250,122,5,152,33,145,5,24,64,134,149,162,44,
96,16,195,116,236,25,101,150,46,16,17,133,11,31,60,57,14,53,117,80,58,180,24,34,45,136,9,71,169,87,138,49,191,179,254,32,191,115,230,87,25,22,91,47,3,95,169,191,135,234,141,168,251,247,107,8,176,132,69,
199,139,192,239,2,79,142,138,233,59,30,56,253,39,239,122,224,244,159,172,106,165,210,68,71,105,55,109,233,249,70,159,110,163,75,86,58,158,185,114,154,227,205,117,214,244,81,14,182,142,209,107,206,163,
35,19,118,245,170,18,91,89,172,173,194,30,224,108,248,33,134,172,202,120,104,253,247,176,214,94,4,252,231,206,61,112,224,109,189,119,17,73,140,117,85,152,227,219,175,151,131,83,66,105,29,182,18,38,202,
147,79,61,133,245,52,227,38,165,31,177,93,158,199,226,136,137,104,144,146,170,152,157,82,144,145,103,144,93,230,108,245,151,60,55,121,138,211,131,199,113,222,62,85,151,127,51,230,240,193,235,53,242,253,
235,220,47,251,36,12,168,58,14,46,16,216,69,22,8,100,83,7,234,68,169,73,0,72,232,17,48,132,102,201,211,106,39,234,207,157,104,223,202,201,206,91,184,181,119,39,107,205,35,180,76,7,241,130,119,14,183,7,
41,180,116,5,15,111,124,134,95,125,225,231,176,206,254,122,104,69,240,177,251,143,253,24,223,177,114,63,177,36,245,229,89,125,37,180,7,100,212,123,135,149,10,47,96,84,76,150,143,249,247,79,252,51,40,97,
232,55,216,246,87,194,170,24,130,66,33,117,22,232,112,148,190,240,14,27,6,61,194,83,120,158,169,167,126,219,132,205,159,211,181,1,76,223,72,47,176,159,72,12,102,43,186,49,129,60,162,95,43,193,98,45,232,
6,187,136,219,154,93,152,143,62,112,8,184,93,144,27,218,81,111,238,80,243,56,183,116,238,160,107,230,80,74,163,69,161,85,68,94,101,60,57,124,132,39,183,191,68,97,179,211,4,202,246,29,224,187,181,50,247,
220,218,63,197,77,157,111,101,62,90,38,213,77,140,68,68,42,194,122,87,27,166,80,249,130,202,87,104,101,184,148,157,231,211,103,127,133,220,78,103,116,175,219,123,126,191,217,21,227,140,30,126,84,15,119,
6,236,34,165,206,6,63,207,95,211,1,228,155,81,1,174,245,6,81,109,245,221,186,86,110,214,10,16,213,74,18,19,208,50,204,158,191,187,2,156,0,110,35,0,83,207,24,57,77,253,178,117,191,253,207,235,47,125,88,
119,223,6,192,189,4,90,187,131,245,231,105,81,34,90,34,156,183,34,32,137,106,16,169,184,18,17,95,185,82,77,237,88,57,239,46,2,15,120,239,215,217,101,250,182,223,32,204,205,94,51,114,140,75,181,224,175,
176,123,0,234,191,217,21,224,90,69,152,9,120,175,245,239,253,89,84,123,135,78,173,44,237,58,76,236,85,156,164,174,179,115,118,1,155,203,250,253,139,132,229,139,152,0,79,115,19,129,14,175,185,199,146,149,
104,49,105,146,152,196,164,198,121,143,199,217,44,203,178,170,170,46,122,239,119,106,119,190,197,46,117,222,181,194,159,157,118,77,107,5,24,214,175,25,93,220,27,158,0,238,119,5,184,246,119,148,107,66,
133,186,198,91,36,123,60,70,191,86,130,246,30,47,161,246,252,153,237,177,192,243,181,32,18,96,173,206,59,250,181,82,93,69,228,168,31,37,74,180,15,200,146,218,59,239,61,222,214,66,95,223,227,77,242,61,
213,205,172,150,168,246,40,222,222,215,223,8,93,220,223,38,5,248,191,205,29,228,26,143,208,220,99,253,209,30,97,250,218,10,247,90,96,81,43,198,94,239,49,107,204,152,107,148,77,239,9,67,179,207,154,41,
211,6,175,14,230,176,151,22,103,239,251,125,99,93,215,211,51,19,214,44,84,232,61,130,83,123,172,113,118,105,187,215,2,247,134,151,104,79,178,201,171,40,65,92,255,124,70,120,53,169,223,255,141,90,244,155,
10,240,141,255,111,123,67,136,231,175,6,90,152,9,250,27,125,206,222,193,205,140,245,211,253,109,18,252,55,131,2,188,145,223,157,127,243,235,120,243,121,243,121,243,121,243,121,243,249,91,246,252,31,180,
104,45,7,46,31,241,223,0,0,0,0,73,69,78,68,174,66,96,130,0,0};

const char* Ketonal::ketonal_main_bg_png = (const char*) resource_Ketonal_ketonal_main_bg_png;
const int Ketonal::ketonal_main_bg_pngSize = 21478;

// JUCER_RESOURCE: tray_png, 746, "C:\tray.png"
static const unsigned char resource_Ketonal_tray_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,0,31,243,255,97,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,6,98,75,71,
68,0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,0,0,0,7,116,73,77,69,7,216,5,23,10,49,54,51,231,195,73,0,0,2,106,73,68,65,84,56,203,165,147,93,72,211,81,24,
198,127,231,255,223,254,107,110,107,42,126,66,138,149,100,182,139,210,138,168,212,155,160,144,32,34,10,130,18,34,18,36,34,161,171,72,162,66,188,11,33,136,176,155,46,171,155,48,163,48,186,137,52,9,133,
146,204,143,162,76,135,57,117,78,217,135,155,251,252,159,46,230,54,39,121,213,129,3,47,15,231,121,222,135,247,61,15,252,231,17,27,129,150,47,13,101,192,121,160,6,176,0,243,192,0,208,221,85,219,23,216,
84,224,114,223,81,161,89,213,54,155,209,120,59,24,143,107,186,148,27,223,122,129,59,82,151,15,31,31,232,215,83,160,146,42,52,139,218,94,150,99,109,183,25,180,52,185,181,178,147,235,149,247,217,151,91,
143,34,212,92,224,129,80,196,243,230,193,122,99,138,103,0,184,242,169,206,97,215,180,155,21,214,173,124,116,187,0,168,178,213,178,219,182,31,128,106,219,65,188,177,69,6,150,222,240,126,241,197,185,160,
244,187,129,107,105,7,66,225,82,185,197,166,122,163,17,82,198,27,139,155,178,252,231,26,11,57,81,124,129,138,156,106,16,92,109,30,172,59,156,18,16,72,106,236,154,70,84,79,0,176,195,226,160,202,86,155,
37,48,21,28,231,238,248,69,198,252,131,0,66,40,162,53,45,160,199,165,6,96,80,146,35,105,44,73,118,215,165,158,113,160,21,224,141,121,50,211,23,28,3,84,5,144,177,80,98,202,23,141,98,55,106,152,20,51,149,
214,189,244,123,122,184,55,209,68,66,198,1,200,51,22,113,40,255,120,70,64,17,5,123,206,150,90,20,64,46,79,6,223,205,132,86,176,24,140,104,106,156,27,95,79,242,116,166,19,119,228,15,115,225,233,52,169,
161,224,116,186,150,186,12,127,239,153,79,40,0,189,173,99,189,243,238,149,241,201,128,143,157,86,59,146,140,245,153,208,207,228,39,136,121,232,118,117,165,241,72,32,62,162,199,100,76,5,144,9,25,86,12,
138,211,228,48,157,82,84,161,153,84,149,213,68,210,186,42,12,72,116,30,253,190,149,229,102,118,200,219,241,235,237,226,144,154,2,230,134,125,78,69,21,179,230,93,91,234,35,66,55,167,241,240,52,195,222,
15,196,244,72,154,236,249,177,242,242,85,243,72,7,176,170,174,219,84,194,245,217,55,177,48,18,24,202,219,158,83,104,206,215,202,133,34,12,235,87,25,15,235,126,103,255,242,147,215,45,223,218,144,44,252,
51,76,107,171,45,178,151,155,29,213,103,74,143,216,74,76,219,164,68,250,103,87,157,163,207,92,125,161,165,232,40,224,219,52,141,27,130,102,92,187,0,81,32,14,100,165,236,47,186,242,233,153,211,60,149,117,
0,0,0,0,73,69,78,68,174,66,96,130,0,0};

const char* Ketonal::tray_png = (const char*) resource_Ketonal_tray_png;
const int Ketonal::tray_pngSize = 746;
